Всем доброго дня.
Вопрос связанный с моделями и формами.
Допустим бог постал нам кусочик модели и есть форма
(есть исполнитель, у него есть список альбомом)
class SingerAlbumForm(forms.ModelForm):
class Meta:
model = SingerAlbum
exclude = ('singer',)
def save(self, singer_id):
obj = super(SingerAlbumForm, self).save(commit=False)
obj.singer_id = singer_id
obj.save()
return obj
из этого в шаблоне мы можем получить (допустим)
<p> <label> ... <input /> </p>
Есть небольшой ньюанс:
1. Мне нужно в label добавить свой текст
2. в input Добавить везде свой класс
3. поменять распорядок input'ов (что-то поставить, выше, описание опистить в конец)
И так с каждой формой
выходит что форма вырастает в что-то такое:
class SingerAlbumForm(forms.ModelForm):
# Пишу нужный label и добавляю class
name = forms.CharField(max_length=150, widget=forms.TextInput(attrs={'class':'field'}), label = 'Название')
field1 = ...
field2 = ...
field3 = ...
def __init__(self, *args, **kw):
super(SingerRegistrationForm, self).__init__(*args, **kw)
# Расположение элементов
self.fields.keyOrder = [
'username',
'first_name',
'last_name',
'email',
'password',
]
class Meta:
model = SingerAlbum
exclude = ('singer')
def save(self, singer_id):
obj = super(SingerAlbumForm, self).save(commit=False)
obj.singer_id = singer_id
obj.save()
return obj
Следовательно - я каждый раз переписываю модель, добавляю кучу всего мне нужного в форму, и model = ModelName в принципе теряет смысл в этом всем.
Объясните что я делаю не так и как быть с принципом dry ?
В идеале хотелось бы такие настройки вносить один раз, допустим в определении модели
зарание благодарен за ответы
Updated 19 April 2011, 18:50 by vladka.