Уведомления

Группа в Telegram: @pythonsu

#1 Май 24, 2010 09:47:28

Belegnar
От:
Зарегистрирован: 2010-05-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Форма от нескольких моделей

Есть необходимость создать форму, которая включала бы в себя формы нескольких моделей. Имеется:

* модели User, Guest, Player
* формы, заведенные через forms.ModelForm, UserForm, GuestForm, PlayerForm

Если я создаю форму как

class NewForm(UserForm, GuestForm, PlayerForm):
pass
то NewForm().fields содержит только поля первой формы (UserForm). Подскажите, пожалуйста, как бы ее объявить таким образом, чтобы все поля всех форм-родителей присутствовали?



Офлайн

#2 Май 25, 2010 16:43:55

tmt
От:
Зарегистрирован: 2010-03-26
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Форма от нескольких моделей

Belegnar
Есть необходимость создать форму, которая включала бы в себя формы нескольких моделей. Имеется:

* модели User, Guest, Player
* формы, заведенные через forms.ModelForm, UserForm, GuestForm, PlayerForm

Если я создаю форму как

class NewForm(UserForm, GuestForm, PlayerForm):
pass
то NewForm().fields содержит только поля первой формы (UserForm). Подскажите, пожалуйста, как бы ее объявить таким образом, чтобы все поля всех форм-родителей присутствовали?
Идем по ссылке:
http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#form-inheritance

Читаем:

There are a couple of things to note, however.

* Normal Python name resolution rules apply. If you have multiple base classes that declare a Meta inner class, only the first one will be used.
This means the child's Meta, if it exists, otherwise the Meta of the first parent, etc.
* For technical reasons, a subclass cannot inherit from both a ModelForm and a Form simultaneously.

Chances are these notes won't affect you unless you're trying to do something tricky with subclassing.


Идем дальше:

http://code.djangoproject.com/ticket/7018

Делаем выводы…



Отредактировано (Май 25, 2010 17:10:34)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version