8

テンプレートに列挙型の名前を表示しようとしています。明確にするために、私はクラスのような列挙型を持っていますmodel.py

class EmployerWorkerNumberRange():
R_0 = 0
R_1_5 = 1
R_6_15 = 2
UNKNOWN = 3

EMPLOYER_WORKER_NUMBER_RANGE =(
    (R_0,_("wnr_0")),
    (R_1_5 ,_("wnr_1_5")),
    (R_6_15,_("wnr_6_15")),
    (UNKNOWN,_("UnknownWorkerNumberRange")),
)

こんな形で使うと

wnr = forms.ChoiceField(label=_("emp_full_reg_wnr"), required=True, choices=EmployerWorkerNumberRange.EMPLOYER_WORKER_NUMBER_RANGE)

それはうまく機能します(ドロップダウンに変換された値を入力し、選択したアイテムを取得すると、IDだけが表示されます)

私の質問は、テンプレートのIDを指定して、変換された値をテンプレートに表示するにはどうすればよいかということです。例えば、使いたいEmployerWorkerNumberRange.EMPLOYER_WORKER_NUMBER_RANGE[0]

何か提案してもらえますか?

ありがとう

4

1 に答える 1

16

人間が判読できる from of フィールド値を表示するには、モデル インスタンスget_$var_display()でメソッド (すべてのフィールドに対して で自動的に作成される) を使用します。choicesあなたの例では、次のようなものです:

{{ company.get_wnr_display }}

モデル インスタンスを使用せずにインデックスで値を取得するには、変数に格納されているインデックスを必要な値に変換するカスタム フィルターを作成するのが最も簡単な方法です。

{{ some_value|as_wnr_title }}
于 2011-05-25T16:05:33.340 に答える