簡體   English   中英

Django脆皮形式 - 設置隱藏字段值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM