小编典典

Django 表单中的 CSS 样式

all

我想设置以下样式:

表格.py:

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    email = forms.EmailField(required=False)
    message = forms.CharField(widget=forms.Textarea)

contact_form.html:

<form action="" method="post">
  <table>
    {{ form.as_table }}
  </table>
  <input type="submit" value="Submit">
</form>

例如,如何设置 , 的类 ID 提供外部样式表?subject``email``message


阅读 75

收藏
2022-08-19

共1个答案

小编典典

取自我对以下内容的回答: 如何在 Django 中使用

标记表单字段

class MyForm(forms.Form):
    myfield = forms.CharField(widget=forms.TextInput(attrs={'class': 'myfieldclass'}))

或者

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['myfield'].widget.attrs.update({'class': 'myfieldclass'})

或者

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        widgets = {
            'myfield': forms.TextInput(attrs={'class': 'myfieldclass'}),
        }

-– 编辑 —
以上是对完成所问内容的原始问题代码进行的最简单更改。如果您在其他地方重复使用该表单,它还可以防止您重复自己;如果您使用 Django 的
as_table/as_ul/as_p
表单方法,您的类或其他属性就可以工作。如果您需要完全控制完全自定义的渲染,这已清楚地记录在案

-- 编辑 2 —
添加了一种更新的方法来为 ModelForm 指定小部件和属性。

2022-08-19