将参数添加到可从模板访问的django表单的字段中

时间:2017-04-28 10:05:59

标签: python django django-forms

我有一个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

我的问题是:

  1. 我怎样才能从模板中找到dest变量?
  2. 为什么dest值可以从代码中获得,但不能从模板中获取?
  3. 我可以从代码和模板中获取help_text。我可以以某种方式注册吗?

    Python:3.4 Django:1.9

1 个答案:

答案 0 :(得分:0)

您在模板中访问的字段实际上是BoundField的一个实例。您可以通过.field属性访问实际的基础字段。所以这会奏效:

{{ field.help_text }} || {{ field.field.dest }}