簡體   English   中英

Django使用酥脆的表單使用CSS渲染表單字段

[英]Django render a form field with css using crispy forms

我有一個要用酥脆的形式呈現的表格,

形成

class MyForm(forms.ModelForm):

    class Meta:
        model = MyModel
        excludes = ('user', 'created')

    def __init__(self, *args, **kwargs):


        self.helper = FormHelper()
        self.helper.form_show_labels = False ## I only need the input field
        self.helper.layout = layout.Layout(

            layout.Field('name', css_class="form-control"), 
            layout.Field('objective', css_class="form-control"),
            ## ADD CLASS form-control TO THE FIELDS (This is the problem since the fields are not rendered with the class)
        )
        super(MyForm, self).__init__(*args, **kwargs)

模板

<div class="form-group">
    <label>Name <i class="fa fa-question-circle tooltips" data-original-title="Lorem Ipsum" data-html="true" data-placement="right" data-container="body"></i></label>
    {{ form.name|as_crispy_field }}
    {{ form.name.errors|striptags }}
</div>
<div class="form-group">
    <label>Theme/ Objective <i class="fa fa-question-circle tooltips" data-original-title="Lorem Ipsum" data-html="true" data-placement="right" data-container="body"></i></label>
    {{ form.objective|as_crispy_field }}
    {{ form.objective.errors|striptags }}
</div>

字段不使用class form-control呈現。 標簽已呈現,因為我有自定義標簽,所以不需要它們。 我將如何在類中渲染字段提供任何幫助,我們將不勝感激。 謝謝。

如果您手動呈現字段,則可以像這樣添加它們:

<input type="text" name="{{ form.objective.html_name }}" 
       id={{ form.objective.id_for_label }}" 
       class="form-control">

請注意,這將要求您手動呈現所有input

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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