【发布时间】:2019-01-24 18:24:15
【问题描述】:
我有以下 django 酥脆的形式:
class ConsultForm(forms.ModelForm):
class Meta:
model = Consults # Your User model
fields = [ 'TEMPLATE','EMAIL', 'DATE']
labels = {
'EMAIL' : 'Your Email',
'DATE' : 'Todays date',
# 'captcha': "Enter captcha"
}
helper = FormHelper()
helper.form_method = 'POST'
helper.form_action = "/contact/"
helper.form_id = 'form' # SET THIS OR BOOTSTRAP JS AND VAL.JS WILL NOT WORK
helper.add_input(Submit('Submit', 'Submit', css_class='btn-primary'))
helper.layout = Layout(
Field('TEMPLATE', type="hidden"),
Field('DATE', type="hidden"))
我想通过隐藏字段 TEMPLATE 传递一个值。我已阅读 https://django-crispy-forms.readthedocs.io/en/latest/api_helpers.html ,但不知道如何执行此操作。我怎样才能完成这项工作?
【问题讨论】:
-
您当前的代码有什么问题?你看到了什么?
-
代码正常,但我想在提交表单时将隐藏的TEMPLATE字段的值设置为“VALUE”。
-
我不知道“VALUE”是什么以及它来自哪里。您可以在视图中初始化表单时为字段设置初始值:
form = ConsultForm(initial={'TEMPLATE': 'VALUE'}),它将保留在隐藏的输入字段中并因此提交。或者如果它是一个固定值,在表单初始化器中:self.fields['TEMPLATE'].initial = 'VALUE' -
依靠隐藏的输入值将数据从一个视图传递到下一个视图通常是个坏主意。原因是任何人都可以在发布之前更改该值。因此,仅在方便时才使用它,而不是在正确至关重要的情况下使用。或者有一些机制来检查提交的值是否仍然有意义。
标签: python django django-crispy-forms