2010-12-21 26 views
0

Ich habe Probleme in Django, wenn ich nach einem Feld suche, das einen Auswahlparameter hat. Ich bekomme den Feldnamen nicht, aber stattdessen bekomme ich die Nummer aus irgendeinem seltsamen Grund.Django-Problem: Problem mit Auswahlfeldern

Mein forms.py:

from django import forms 

CONTRACT_TYPE_CHOICES = (
       (1, 'Annual'), 
       (2, 'Ad-hoc'), 
       ) 

CONTRACT_STATUS_CHOICES = (
    (1, 'Active'), 
    (2, 'In-Active'), 
) 

class ContractForm(forms.ModelForm): 
    contract_type = forms.ChoiceField(choices=CONTRACT_TYPE_CHOICES) 
    contract_status = forms.ChoiceField(choices=CONTRACT_STATUS_CHOICES) 

    class Meta: 
    model = Contract 

In meiner Vorlage. Ich habe folgende

{% for contracts in contracts_list %} 
    {{contracts.client_contract_number}}<br/> 
    {{contracts.contract_type}}<br/> 
    {{contracts.contract_status}}<br/> 
{% endfor %} 

Sie alle geben einen Wert zurück. Aber contact_type und contract_status gibt Zahlen zurück. Ich mache es nicht Nummern, aber die Namen. Wie mache ich das?

Antwort

3

Modell-Felder, die eine Auswahl kwarg automatisch nehmen eine get_FIELD_NAME_display Methode. So könnten zum Beispiel sollten Sie in Ihrer Vorlage setzen diese:

{{ contracts.get_contract_type_display }} 
{{ contracts.get_contract_status_display }} 

die documentation See.

Viel Glück, Justin