Django 使用 crispy 表单呈现 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
呈现。
标签已呈现,我不需要它们,因为我有自定义标签。
任何有关如何使用 class 呈现字段的帮助将不胜感激。谢谢
如果您手动呈现字段,您可以像这样添加它们:
<input type="text" name="{{ form.objective.html_name }}"
id={{ form.objective.id_for_label }}"
class="form-control">
请注意,这需要您手动渲染所有 input
。
我有一个要用脆皮形式呈现的形式,
表格
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
呈现。
标签已呈现,我不需要它们,因为我有自定义标签。
任何有关如何使用 class 呈现字段的帮助将不胜感激。谢谢
如果您手动呈现字段,您可以像这样添加它们:
<input type="text" name="{{ form.objective.html_name }}"
id={{ form.objective.id_for_label }}"
class="form-control">
请注意,这需要您手动渲染所有 input
。