у меня есть две модели Django, связанные со связью ManyToMany через «сквозную» модели:Показать все варианты в Django ManyToMany форме
class Tag(Model):
uuid = UUIDField(auto=True, version=4, primary_key=True)
name = CharField(max_length=100)
class Agent(Model):
uuid = UUIDField(auto=True, version=4, primary_key=True)
tags = ManyToManyField(
'Tag', blank=True, null=True, through='AgentTag')
class AgentTag(Model):
agent = ForeignKey(Agent)
tag = ForeignKey(Tag)
experience = IntegerField()
я хотел бы создать форму, показывая все теги в модели Tag , наряду с раскрывающимися списками для агента, чтобы записать свой опыт в каждом теге. Если пользователь ранее обновил свой опыт, форма должна быть инициализирована этим. Сохранение формы должно обновлять таблицу «через» AgentTag.
Какой тип формы (или формы?) Необходим для этого? Я не уверен, должен ли он быть ModelForm для AgentTag или заказной формы. Очень ценю некоторую помощь в том, как подойти к этому.
Спасибо! Это имеет смысл. Есть 215 тегов (мы показываем/скрываем разные разделы из них Javascript), поэтому создание экземпляров, которые многие формы как на GET, так и на POST, похоже на работу с сервером. Я соблазн просто добавить текущее состояние структуры данных в контекст, вручную выставить флажки, а затем обновить модель из ответа POST, полностью обходя формы Django. Дайте мне знать, если вы считаете, что это плохая идея. – user3700505
Хотя я не думаю, что создание форм 215 обязательно является большой проблемой (если вы избегаете делать какие-либо запросы БД в цикле), определенно имеет смысл полностью отказаться от форм, если вам нужно показать только один селектор для каждого тега. Это также облегчит настройку селектора - не нужно погружаться в виджеты форм и прочее. – Tony