我疯狂地试图理解为什么我在表单中使用“initial”定义的默认值不会打印在我的模板中。表格是这样的:
class MyForm(forms.Form):
# ...
proximity = forms.IntegerField(required=False, initial=50)
在我的模板中:
{{ myForm.proximity }}
打印:
<input id="id_proximity" name="proximity" type="number">
但是,如果我在shell中运行以下内容:
print MyForm()
在输出中我找到:
<input id="id_proximity" name="proximity" type="number" value="50" />
这就是我在模板中所期待的!为什么在shell中它起作用而在模板中却没有?
(我正在使用Django 1.6)
解决!
我在视图中以这种方式初始化表单:
MyForm(self.request.GET)
由于GET中没有数据,因此初始化替换为None:P
答案 0 :(得分:0)
你说得对..我需要30分钟才能解决:) 我们可以在django的源代码中读取django / forms / fields.py,如下所示:
# initial -- A value to use in this Field's initial display. This value
# is *not* used as a fallback if data isn't given.
和forms.Form。 _ init _ 第一个参数是数据,因此它意味着您设置数据并将初始值用作后备: )