Действительно ли возможно включать многоуровневые модели в сингл 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")
Существует ли способ консолидировать их в одну форму, или я должен просто создать форму и обработать загрузку дб и сохранение меня?
Вы можете просто показать обе формы в шаблоне внутри одного html-элемента . Затем просто обработайте формы отдельно в представлении. Вы по-прежнему сможете использовать
form.save()
и вам не придется обрабатывать загрузку и сохранение базы данных самостоятельно.
В этом случае вам это не нужно, но если вы собираетесь использовать формы с одинаковыми именами полей, посмотрите на префикс префикс
kwarg для форм django. (Я ответил на вопрос об этом здесь).
Возможно, вам стоит взглянуть на Встроенные наборы форм . Встроенные наборы форм используются, когда ваши модели связаны внешним ключом.