我的 models.py :
中有以下代码class Tag(models.Model):
name = models.CharField(max_length=75)
class Article(models.Model):
tags = models.ManyToManyField(Tag)
def save(self, *args, **kwargs):
for tag in self.tags:
print tag.name
super(Article, self).save(*args, **kwargs)
当我尝试从管理面板创建文章时,出现以下错误:
ValueError: "<Article>" needs to have a value for field "id" before this many-to-many relationship can be used.
如何解决此问题?我需要在保存文章之前访问并重复标记。谢谢!
答案 0 :(得分:2)
你的宣言
form.save_m2m()
应该在
之后obj.save()
保存对象后,很多对很多字段都会添加
答案 1 :(得分:1)
你的模特如下:
class Tag(models.Model):
name = models.CharField(max_length=75)
class Article(models.Model):
tags = models.ManyToManyField(Tag)
def save(self, *args, **kwargs):
for tag in self.tags:
print tag.name
super(Article, self).save(*args, **kwargs)
如果要创建带有标签的文章实例,首先应创建实例,然后添加tags
,如下所示:
article = Article.objects.create()
tags = [tag_instance1, tag_instance2, tag_instance3 ...]
article.tags.set(tags)
或
article.tags.add(tag_instance)