【发布时间】:2025-11-28 06:25:01
【问题描述】:
我有一个这样的 django 表单设置:
from django import forms
class ContactForm(forms.Form):
full_name = forms.CharField(max_length=20)
phone = forms.CharField(max_length=20)
email = forms.CharField(max_length=30)
message = forms.CharField(max_length=400)
class Meta:
fields = ['full_name', 'phone', 'email', 'message']
widgets = {
'full_name': forms.TextInput(attrs={'class': 'sizefull s-text7 p-l-22 p-r-22', 'placeholder': 'Full Name'}),
'phone': forms.TextInput(attrs={'class': 'sizefull s-text7 p-l-22 p-r-22', 'placeholder': 'Phone Number'}),
'email': forms.TextInput(attrs={'class': 'sizefull s-text7 p-l-22 p-r-22', 'placeholder': 'E-Mail Address'}),
'message': forms.TextInput(attrs={'class': 'dis-block s-text7 size20 bo4 p-l-22 p-r-22 p-t-13 m-b-20', 'placeholder': 'Message'}),
}
效果很好。但是,我最近了解到class Meta 只能与 ModelForms 一起使用。
我需要在表单中的 forms.py 中分配像上面这样的属性。我知道混合业务和表示逻辑是不好的做法,但我目前正在处理一个复杂的付费 Web 模板,并且使用模板标签应用属性的方法到目前为止还没有奏效。鉴于我在截止日期前,我将推迟以这种方式分配属性作为 v2 功能。
我的问题是,如果 Meta 类只能与具有相应模型的表单一起使用,我该如何将属性分配给与模型不对应的表单中的表单小部件,从而无法使用 Meta 类?
【问题讨论】:
标签: django django-forms