0

在寻找具有选择参数的字段时,我似乎在 Django 中遇到问题。我没有得到字段名称,而是出于某种奇怪的原因得到了数字。

我的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

在我的模板中。我有以下

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

它们都返回一个值。但是contact_typecontract_status返回数字。我不会让它返回数字,而是返回名称。我该怎么做呢?

4

1 回答 1

3

采用choices kwarg 的模型字段会自动获得一个get_FIELD_NAME_display方法。因此,例如,您可以将其放入您的模板中:

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

请参阅文档

祝你好运,贾斯汀

于 2010-12-21T12:34:42.427 回答