Я все еще придерживаюсь встроенного Tree-like-eidited связанных моделей на одной странице. У меня есть три модели, A, B и C.Django: встроенное редактирование родственной модели с использованием inlineformset
Class A
Class B
fb = foreignkey(A)
Class C
fc = foreignkey(B)
В admin.py я делаю что-то вроде
AdminA
inlines = [inlineB]
AdminB
inlines = [inlineC]
Я хочу, чтобы, когда я изменить/добавить модель A, I должен иметь возможность добавить ModelB inline и добавить связанные с Model B записи C. Я тестировал inlineformsets, но не могу узнать, как использовать их для моей цели. Более того, я нашел this old discussion on same problem. Но опять же, поскольку я новичок в Django, я не знаю, как заставить его работать.
_What вы на самом деле пытаются до сих пор? _ Вы сделали соответствующий вопрос 12 часов назад , в котором вы сказали, что модель B определяет просто связь между A и C. Я когда-то имел аналогичную настройку с моделями от django-tagging и в основном работал с помощью «GenericInlineAdminForm» для «TaggedItem», который также в основном определяет отношения между тегами, помеченные объекты и типы содержимого. Однако вы не можете рассчитывать на получение полезного ответа здесь, если указать только довольно абстрактные вопросы. –
12 часов назад, да B был абстрактным классом. Но не более того, я внес некоторые изменения в класс. Раньше я надеялся найти какое-то встроенное решение, например всплывающее окно, которое появляется, если вы хотите создать объект foreginkey. Теперь я пытаюсь создать структуру inlineformset. Поэтому в строке Inline я надеюсь, что помимо полей B, я могу добавить экземпляры объектов класса C. Поэтому вы ищете индивидуальное решение для форм, используя модели, встроенные формы и т. Д. Infact моя проблема в точности такая же, как и в ссылке, о которой я упоминал. Можете ли вы наполнить меня деталями своего решения? – Neo
Пожалуйста, ознакомьтесь с http://docs.djangoproject.com/en/1.2/ref/contrib/admin/#inlinemodeladmin-objects. Если вы определяете InlineAdminForm для модели B, например. полученный от admin.TabularInline, вы должны получить дисплей формы, который предоставляет кнопки ** + ** -, которые должны позволить вам создавать экземпляры C во всплывающем окне. Если это не работает, проверьте внешние ключи. Вопрос, с которым вы связаны, в основном имеет разумные ответы на вашу проблему. –