使用自定义模板时 Django 表单字段的初始值
Posted
技术标签:
【中文标题】使用自定义模板时 Django 表单字段的初始值【英文标题】:Initial value for Django form field when using custom template 【发布时间】:2013-07-06 10:18:28 【问题描述】:我的 Django 表单中有一个 BooleanField,我希望其初始值为 True,因此我将其定义为:
my_checkbox = forms.BooleanField(label='My Checkbox', help_text='Some help text here', initial=True)
在我的助手中,我有:
helper.layout = Layout(
Field('my_checkbox', template="custom.html")
Custom.html 看起来像:
<input class="checkboxinput" id="id_ field.name " name=" field.name " type="checkbox">
<span id="hint_id_ field.name " class="help-inline"> field.help_text </span>
我尝试输出 field.initial 的值,但没有任何显示。我知道,如果我手动编码,我会输入<input ... checked>
,然后会选中该框。
有没有办法访问字段的“初始”部分并将其设置在我的自定义模板中?谢谢!
【问题讨论】:
【参考方案1】:在未绑定的表单上确实是 field.initial 。在单选按钮上手动呈现表单的初始值,例如:
% for value, descr in field.choices %
<input type="radio" name=" field.html_hame " value=" value "% if field.initial == value % checked% endif %> descr <br>
% endfor %
【讨论】:
【参考方案2】:您可以使用
访问表单字段的初始数据field.value
【讨论】:
如果用户尚未选择值(表单未绑定),这似乎不起作用。 它在未绑定的表单上对我有用(在 Django 1.6 中),而 field.initial
没有。
其实可以的。如果像我一样,您将表单对象传递给您需要使用 form.field.value
的模板,而不是 form.data.field.value
或 form.cleaned_data.field.value
。以上是关于使用自定义模板时 Django 表单字段的初始值的主要内容,如果未能解决你的问题,请参考以下文章