我创建了一个包含三个字段的Django模型,其中一个字段被隐藏,其余部分可见
1.CharField
2.IntegerField (Hidden Field)
3.DateTimeField
我使用以下代码隐藏了这个:
class HostCreateForm(forms.ModelForm):
class Meta:
model = Host
widgets = {
'Zone_Vale': forms.HiddenInput()
}
要查看此表单,我在我的temlate中使用以下代码:
<form action="" method="POST">
{{ form.as_p }}
<input type="submit" value="{% trans "Add host" %}" />
一切都很好,但我也希望在此输入隐藏层中传递一个变量。我不知道这样做。我尝试通过自定义模板来做(请参阅此链接:) https://docs.djangoproject.com/en/dev/topics/forms/` 例如,{{form.as_p}}将返回一个包含两个可见字段的表单,其中的数据是:(用户输入了什么)和隐藏字段。所以,我想将一个变量传递给template.html文件中的隐藏字段
它也不起作用。需要你的帮助
答案 0 :(得分:1)
考虑到渲染模板的方式,您将无法在模板级别将变量传递给字段。
如果你真的,绝对必须在模板级别将变量传递给表单,我建议创建一个模板标签:
答案 1 :(得分:1)
如果您觉得自己很脏,快速解决方案是使用javascript填充此字段。在view.py
实例化表单对象时,正确的方法应该是使用“initial”参数参考:https://docs.djangoproject.com/en/1.3/ref/forms/api/#django.forms.Form.initial
即使是非常脏,像这样的一些javascript解决方案也会起作用: (使用jQuery。适应您的需求)
<script type="text/javascript">
$(document).ready(function(){
$('form input[name$="Zone_Vale"]').val(DESIRED_HIDDEN_VALUE)
})
</script>
但不要因为这样做而自豪。