我想设置以下样式:
表格.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
subject``email``message
取自我对以下内容的回答: 如何在 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 指定小部件和属性。