Как иметь встроенный набор встроенных форм в форме в Django?

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

Например, у меня есть модель контактов
class Contact(models.Model):
...

И модель связи
class Communication(models.Model):
contact = models.ForeignKey(Contact)

и я хочу иметь форму для контакта с встроенным набором форм, вложенным в нее для управления связанными с ней сообщениями.

Можно ли сделать это с существующими компонентами или у меня есть безнадежная мечта?

EDIT: Я знаю, что панель администратора делает это, но как мне сделать работу в представлении?

One Solution collect form web for “Как иметь встроенный набор встроенных форм в форме в Django?”

Конечно, это возможно – как вы думаете, администратор это делает?

Взгляните на документацию встроенных форм .

Отредактировано после комментария. Конечно, вам нужно создать экземпляр и отобразить как родительскую форму, так и вложенный набор форм. Что-то вроде:

 def edit_contact(request, contact_pk=None): if contact_pk: my_contact = Contact.objects.get(pk=contact_pk) else: my_contact = Contact() CommunicationFormSet = inlineformset_factory(Contact, Communication) if request.POST: contact_form = ContactForm(request.POST, instance=my_contact) communication_set = CommunicationFormSet(request.POST, instance=my_contact) if contact_form.is_valid() and communication_set.is_valid(): contact_form.save() communication_set.save() else: contact_form = ContactForm(instance=my_contact) communication_set = CommunicationFormSet(instance=my_contact) return render_to_response('my_template.html', {'form': contact_form, 'formset':communication_set}) 

и шаблон может быть простым:

 <form action="" method="POST"> {{ form.as_p }} {{ formset }} </form> 

хотя вы, вероятно, захотите немного подробнее узнать, как вы его визуализируете.

  • Django Template Slice - Обратный порядок
  • Добавьте динамическую форму в набор форм django, используя javascript правильно
  • Рекурсия Infinte при расширении шаблона приложения change_form администратора
  • django сортирует элементы запроса еженедельно ежемесячно ежедневно
  • Как использовать iframes в django-cms
  • Как правильно получить URL-адрес для входа в шаблон?
  • Django не может найти шаблоны приложений
  • Django: как предварительно заполнить форму при использовании немодельных данных?
  • request.user в Django
  • найти django / contrib / admin / templates
  • Django - доступ к RequestContext из настраиваемого фильтра
  • Python - лучший язык программирования в мире.