【发布时间】:2020-06-21 16:39:40
【问题描述】:
从我的模板中,我在视图中获取带有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">
【问题讨论】:
标签: django django-models django-views