在Django中可以使用多对多关系之前,对象需要具有字段"id"的值

dar*_*rse 6 python django django-models django-related-manager

我的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)
Run Code Online (Sandbox Code Playgroud)

当我尝试从管理面板创建文章时,我收到以下错误:

ValueError: "<Article>" needs to have a value for field "id" before this many-to-many relationship can be used.
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我需要保存文章之前访问并迭代标记.谢谢!

小智 3

您的声明

form.save_m2m()
Run Code Online (Sandbox Code Playgroud)

应该在之后

obj.save()
Run Code Online (Sandbox Code Playgroud)

保存对象后,多对多字段将添加