Здесь из моего шаблона я получаю список строк с getlist
в представлении. Я хочу назначить этот список в моем поле ManyToMany
. Я получаю выбранный множественный список в моем представлении, и он также создает объект репортера из этого списка, что нормально.
Теперь я хочу назначить эти выбрано только несколько вариантов в моем поле многие ко многим.
Как это сделать здесь? Я получаю эту ошибку при сохранении формы
"<News:somethinng>" needs to have a value for field "id" before this many-to-many relationship can be used.
просмотров
class NewsCreateVView(View):
template_name = 'add_news.html'
def get(self, request):
form = CreateNewsForm()
return render(request, self.template_name, {'form': form})
def post(self, request, **kwargs):
form = CreateNewsForm(request.POST)
reporters = request.POST.getlist('reporter')
if form.is_valid():
news = form.save(commit=False)
for reporter in reporters:
obj = Reporter.objects.create(name=reporter)
news.reporter.add(obj.pk)
news.save()
return redirect('list_news')
моделей
class Reporter(models.Model):
name = models.CharField(max_length=255)
created = models.DateTimeField(auto_now_add=True)
class News(models.Model):
title = models.CharField(max_length=255)
reporter = models.ManyToManyField(Reporter, related_name='reporters')
шаблон
<select class="form-control" name="reporter" multiple="multiple">