[英]Django Crispy Forms with custom field template is not adding the value of the field to request
[英]Django crispy forms - Set hidden field value
我有以下 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 ,但不知道如何执行此操作。 我怎样才能做到这一点?
您可以像这样设置表单字段初始值:
class ConsultForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.initial['TEMPLATE'] = 'my_initial_value'
您还可以在代码的其他位置更改字段的值,例如:
form = ConsultForm(instance=instance)
form.initial['TEMPLATE'] = 'new_value'
使用 formhelper(使用像 Field 这样的通用布局对象),您可以像之前一样设置属性,例如:
Field('TEMPLATE', id="template", value="something" template="my-template.html")
如果这就是你所要求的。
或者,如果上面的方法并不容易,那么在脆皮中就有一个名为Hidden的布局对象。 您可以使用以下方法创建隐藏的输入字段:
Hidden('name', 'value')
您将其用作Hidden('TEMPLATE', 'mysomethingvalue')
喜欢:
Button('name', 'value')
要完全清楚:
helper.layout = Layout(
Hidden('TEMPLATE', 'myvalue'),
Hidden('DATE', 'anydate'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.