Дизайн Django: несколько форм в одном представлении, CBV или FBV? inline_formsets?

У меня есть три модели, связанные следующим образом:

Location
Бизнес имеет отношение ForeignKey к местоположению
Контакт имеет отношение ForeignKey к бизнесу

class Location(models.Model):
    latitude =.. 

class Business(models.Model):
    home_location = models.ForeignKey(Location)


class Contact(models.Model):
    business = models.ForeignKey(Business, on_delete=models.CASCADE)
    contact = models.CharField(max_length=16, null=True)

Все три модели имеют свой собственный класс формы: LocationForm, BusinessForm, ContactForm

Я хочу иметь страницу Бизнес, на которой можно создать (или обновить) Бизнес - его местоположение и связанный с ним Контакт(ы) на той же странице.

До сих пор я пытался использовать 3 формы с префиксами с CBV, но соединение POST запроса трех форм в form_valid() не работает, так как Django не распознает форму как валидную. Но я даже не уверен, что это правильный подход к этой проблеме. Итак, мои вопросы таковы:

  1. What is the Django way to approach the problem: Do I create a template with these three forms and somehow tie them up in a single View? If yes, Would a Class Based View work?

  2. Can inline Formsets work in this three way situation?

Я все еще очень новичок в Django, поэтому буду благодарен сообществу за помощь в концептуальном понимании Django.

Это сообщество невероятно полезно! Спасибо вам всем!

Вернуться на верх