Как создать Django FormWizard для одной модели?

У меня есть модель Django со многими полями, которые должен заполнить пользователь. Если я создам одну ModelForm для этой модели, ее будет достаточно для одной формы. Я хочу разделить его с помощью FormWizard. Я думаю, что можно сначала создавать формы динамически, а затем создавать с их помощью FormWizard.

Это хороший подход или есть лучший способ?


person giolekva    schedule 08.11.2009    source источник


Ответы (1)


Мне кажется нормально.

Подход к созданию частичных форм описан в документах.

Короче говоря:

class PartialAuthorForm(ModelForm):
    class Meta:
        model = Author
        fields = ('name', 'title')

class PartialAuthorForm(ModelForm):
    class Meta:
        model = Author
        exclude = ('birth_date',)

Динамический способ сделать это:

def gimme_my_form(field_tuple):
    class MyForm(ModelForm):
        class Meta:
            model = MyModel
            fields = field_tuple
    return MyForm

В конце концов вы также можете параметризовать модель таким образом.

person Kugel    schedule 08.11.2009
comment
Нет, мне это не нравится. Это не подходит для моей модели, будет как минимум 4 вкладки, каждая из которых содержит 10 (средних) полей. - person giolekva; 08.11.2009
comment
Что не так с этим? Пожалуйста, укажите, какое использование вы бы хотели. Тогда мы сможем придумать подходящий подход. - person Kugel; 09.11.2009
comment
ОК, я только что понял, что вам нужен динамичный способ, я отредактировал свой ответ. - person Kugel; 09.11.2009