У меня есть настройка формы 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. Я понимаю, что это плохая практика - смешивать бизнес-логику и логику представления, но сейчас я имею дело со сложным платным веб-шаблоном, и методы применения атрибутов с помощью тегов шаблонов пока не работают. Учитывая, что у меня крайний срок, я откладываю назначение атрибутов таким образом, как функцию v2.
У меня вопрос: если класс Meta можно использовать только с формами, имеющими соответствующую модель, как я могу назначить атрибуты виджетам форм в формах, которые не соответствуют модели и, следовательно, не могут использовать класс Meta?