为了账号安全,请及时绑定邮箱和手机立即绑定

Django脆皮形式 - 设置隐藏字段值

Django脆皮形式 - 设置隐藏字段值

开心每一天1111 2021-10-19 17:18:03
我有以下 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,但不知道如何执行此操作。我怎样才能做到这一点?
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

您可以像这样设置表单字段初始值:


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'))


查看完整回答
反对 回复 2021-10-19
  • 1 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信