以此示例形式。
class TestForm(forms.Form):
def __init__(self, *args, **kwargs):
super(TestForm, self).__init__(*args, **kwargs)
self.fields["test"] = forms.CharField()
在我看来,我有这段代码:
test_form = TestForm()
context['test_form'] = test_form
如果我print(test_form)
,它会显得很好。现在,当我在模板中使用{% debug %}
时,这就是输出:{ ... 'test_form': , ... }
。换句话说,表格消失了。我怀疑它与初始化后添加字段有关,但我真的想知道为什么?如果可能的话,如何绕过看似限制。
答案 0 :(得分:0)
要测试您的表单是否已消失,您可以尝试显示它:
{% for field in test_form %}
{{ field }}
{% endfor %}
这应该将表单的每个字段显示为HTML。希望它有所帮助!
答案 1 :(得分:0)
您的联系人变量没有消失:它就在那里,在您向我们展示的输出中。如果它已经消失,你就不会在该词典中看到test_form
键。
至于为什么你没有看到该键的值,这只是因为python对象的默认表示就像这个<TestForm object at ....>
,而你的浏览器正在解释尖括号作为一个它忽略的未知HTML标签。
将调试标记放在<pre>...</pre>
标记内,您就可以看到它。