Рассмотрим следующие Django модели:
class Agent(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
class Report(models.Model):
date = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(
get_user_model(),
on_delete=models.CASCADE,
related_name='reports',
) # just the Django User creating the Report
agent = models.ForeignKey(
Agent,
on_delete=models.CASCADE,
related_name='reports',
) # Agent which the Report is about
body = models.TextField()
class Objective(models.Model):
agent = models.ForeignKey(
Agent,
on_delete=models.CASCADE,
related_name='objectives',
) # Agent who has this Objective
reports = models.ManyToManyField(Report, related_name='reports')
body = models.CharField(max_length=255)
Здесь подразумевается, что Агенты могут иметь несколько Целей, а Отчет может относиться к одному Агенту, но к любому количеству Целей этого Агента.
Моя проблема связана с созданием представления / шаблона / формы для создания нового отчета. Что является хорошим подходом для создания страницы, в которой:
- имеет раскрывающийся список для выбора агента (сама по себе тривиальная часть; просто используйте ModelForm с
model = Report
) - , затем имеет задачи Агента, которые заполняются на странице, так что может быть выбрано произвольное их количество (хотя бы одна требуется)
- , а затем после отправки формы новый отчет сохраняется в каждой цели " сообщает «Отношения ManyToManyField?
Я относительно новичок в Django, поэтому я совершенно не уверен, какой подход выбрать, или какие инструменты Django помогут мне в этой ситуации. Шаг 2, кажется, требует Javascript и некоторый способ доступа к базе данных / моделям Django через эту Javascript?
Может кто-нибудь предложить подход или даже написать рабочий пример?