创建新标签并将其添加到指定的文章

时间:2018-07-18 08:09:51

标签: django

我想为文章添加标签,模型表的结构为:

class Tag(models.Model):
    owner = models.ForeignKey(User,on_delete=models.CASCADE)
    name = models.CharField(max_length=50, unique=Tre)
    def __str__(self):
        return self.name
    class Meta:
        ordering = ("id",)

class Article(models.Model):
    tags = models.ManyToManyField(Tag, blank=True)
    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    ...

我检索最新的文章,然后使用正向查询创建标签记录并将其添加到文章中,

In [45]: a = Article.objects.all().last()
In [46]: a
Out[46]: <Article: learn django>
In [47]: a.tags.create(name="django")

它抛出异常:

IntegrityError: (1048, "Column 'owner_id' cannot be null")

所以,我必须在文章管理器中重复该文章

In [48]: a.tags.create(name="djang", owner=a.owner)
Out[48]: <Tag: django>

我想这是一项重复的工作,因为我正好在特定文章中进行工作,但是必须声明要创建标签的工作所在。

如何按照DRI原理进行操作?

0 个答案:

没有答案