gpt4 book ai didi

python - Django crispy forms - 设置隐藏字段值

转载 作者:行者123 更新时间:2023-12-04 01:48:31 24 4
gpt4 key购买 nike

我有以下 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")

如果这就是您的要求。

或者如果上面的方法不简单,那么 crispy 中有一个名为 Hidden 的布局对象。您可以使用它创建隐藏的输入字段:

Hidden('name', 'value')

您将其用作Hidden('TEMPLATE', 'mysomethingvalue')

喜欢:

Button('name', 'value')

要完全清楚:

helper.layout = Layout(
Hidden('TEMPLATE', 'myvalue'),
Hidden('DATE', 'anydate'))

关于python - Django crispy forms - 设置隐藏字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54353158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com