我有一个Django表单,它通过视图传递给模板。在表单__init__
中,我尝试向每个字段添加一个参数,可以从代码中访问,但不能从模板中访问。
forms.py
class GenForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(GenForm, self).__init__(*args, **kwargs)
for field in self.fields:
self.fields[field].dest = 'test_value'
help_text = self.fields[field].help_text
模板
{% for field in form %}
{{ field.help_text }} || {{ field.dest }}
{% endfor %}
views.py
ret_dic['form'] = GenForm(request = request)
return render(request, 'template_file', ret_dic)
我的目标是从模板中获取字段的目标值,但它根本不会显示。奇怪/有趣的是,我可以从代码中获得目标值:
IPython的
gen = GenForm()
gen.fields['name'].dest
#results: test_value
我的问题是:
我可以从代码和模板中获取help_text。我可以以某种方式注册吗?
Python:3.4 Django:1.9
答案 0 :(得分:0)
您在模板中访问的字段实际上是BoundField的一个实例。您可以通过.field
属性访问实际的基础字段。所以这会奏效:
{{ field.help_text }} || {{ field.field.dest }}