我有一个绑定形式的ChoiceField,其选择是:
[('all', 'All users'), ('group', 'Selected groups'), ('none', 'None')]
在模板中,我可以访问其绑定值(要存储的实际值;每个元组的第一个元素)和选项。有了这些信息,我知道我应该能够访问显示值,或者每个元组的第二个元素。但是我怎么能在模板中做到这一点?谢谢。
我有一个绑定形式的ChoiceField,其选择是:
[('all', 'All users'), ('group', 'Selected groups'), ('none', 'None')]
在模板中,我可以访问其绑定值(要存储的实际值;每个元组的第一个元素)和选项。有了这些信息,我知道我应该能够访问显示值,或者每个元组的第二个元素。但是我怎么能在模板中做到这一点?谢谢。
我怀疑没有自定义模板标签或过滤器就可以完成。 自定义模板过滤器看起来:
@register.filter
def selected_choice(form, field_name):
return dict(form.fields[field_name].choices)[form.data[field_name]]
检查此链接 - https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_display
您可以使用此函数返回显示名称 - ObjectName.get_FieldName_display()
将ObjectName替换为您的类名和FieldName,其字段需要获取显示名称。
我有一个联系表格使用 FormView
基于类的视图。联系表格有一些 ChoiceField
领域。我没有将提交内容存储在数据库中;只需通过电子邮件发送给网站所有者。这就是我最终做的事情:
def form_valid(self, form):
for field in form.fields:
if hasattr(form[field].field, 'choices'):
form.cleaned_data[field + '_value'] = dict(form[field].field.choices)[form.cleaned_data[field]]
...
如果你使用 {{ form.instance.field }}
在表单模板中,它应显示所选的选择显示名称