如何在django表单中添加自定义css:form.as,

cclgggtu  于 2023-02-14  发布在  Go
关注(0)|答案(2)|浏览(165)

我花了一些时间添加一些css到一个带有提交按钮的输入域。然而,我仍然只是在学习如何使用django表单,发现我不得不在我的模板中使用'form.as_p'。结果,我失去了我想要的样式。有什么方法可以添加样式到django表单元素?!
另外,我没有发布我的代码,因为它是标准的。只是一个与表单/模型连接的常规模板。只是好奇如何添加样式。

mzillmmw

mzillmmw1#

Django表单元素的id与给定的字段名相匹配,例如表单如下所示:

BasicForm(forms.Form):
    first_name = models.CharField(...)
    last_name = models.CharField(...)

将得到呈现与id为每个输入元素,如first_name_id和last_name_id,然后你可以应用css样式使用这些id,如果你想添加一个类到所有的表单域(如果你正在使用类似bootstrap),你可以修改表单域小部件如下:

BasicForm(forms.Form):
    first_name = models.CharField(...,
                                  widget=forms.TextInput(attrs={'class' : 'myclass'})
    last_name = models.CharField(...,
                                 widget=forms.TextInput(attrs={'class' : 'myfieldclass'})
7vhp5slm

7vhp5slm2#

向小部件添加form-control css类。
form类是通过widget访问input标记的入口,通过form.Form中的constructor方法改变widget属性。
此方法self.visible_fields()用于获取前端可以查看的所有可见视野。

def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
    
        for field in self.visible_fields():
            field.field.widget.attrs.update({'class': 'form-control'})

相关问题