我希望每次使用django创建表单时,标签输入都包含特定的CSS类(form-control),为此,我必须在form.py中编写以下代码,为每个字段添加行:
class InsertItem(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['name'].widget.attrs.update({'class': 'form-control'})
self.fields['price'].widget.attrs.update({'class': 'form-control'})
是否有一种方法可以强制Django以每种形式包含我需要的css类,而不必为每一行写东西呢?
答案 0 :(得分:1)
编写一个通用的基类来更新每个字段:
class StylishForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.fields.values():
field.widget.attrs.update({'class': 'form-control'})
并从中继承:
class InsertItem(StylishForm):
...
答案 1 :(得分:0)
我正在使用django-widget-tweaks应用程序添加类属性。
form
创建modelForm
class InsertItem(forms.ModelForm):
class Meta:
model = modelName
{% load widget_tweaks %}
<form method="post">
{% csrf_token %}
{% for field in form %}
{% render_field field class="form-control" %}
{% endfor %}
</form>
{% load widget_tweaks %}
:加载应用程序以使用它
{% render_field
:命令
field
:要添加类的字段名称
class="form-control" %}
:属性