Многоуровневые модели в единственном django ModelForm?

Действительно ли возможно включать многоуровневые модели в сингл ModelForm в django? Я пытаюсь создать форму редактирования профиля. Таким образом, я должен включать некоторые поля из модели User и модели UserProfile. В настоящее время я использую 2 формы как это

class UserEditForm(ModelForm):

    class Meta:
        model = User
        fields = ("first_name", "last_name")

class UserProfileForm(ModelForm):

    class Meta:
        model = UserProfile
        fields = ("middle_name", "home_phone", "work_phone", "cell_phone")

Существует ли способ консолидировать их в одну форму, или я должен просто создать форму и обработать загрузку дб и сохранение меня?

89
задан Serjik 19 December 2015 в 09:03
поделиться

2 ответа

Вы можете просто показать обе формы в шаблоне внутри одного html-элемента

. Затем просто обработайте формы отдельно в представлении. Вы по-прежнему сможете использовать form.save() и вам не придется обрабатывать загрузку и сохранение базы данных самостоятельно.

В этом случае вам это не нужно, но если вы собираетесь использовать формы с одинаковыми именами полей, посмотрите на префикс префикс kwarg для форм django. (Я ответил на вопрос об этом здесь).

85
ответ дан 24 November 2019 в 07:21
поделиться

Возможно, вам стоит взглянуть на Встроенные наборы форм . Встроенные наборы форм используются, когда ваши модели связаны внешним ключом.

2
ответ дан 24 November 2019 в 07:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: