我正在尝试使用django-taggit(see)。这就是我的代码中的内容:
models.py
class MyData(models.Model):
title = models.CharField(blank=True, max_length=50)
.....
tags = TaggableManager()
views.py
g = MyData(title=f_title)
g.tags.add( "mytag" )
g.save()
出于某种原因,当我试图保存标签和数据时,我收到了这个错误:
MyData对象需要有一个主要对象 在你可以访问他们之前的关键值 标签
有什么想法吗?谢谢!
答案 0 :(得分:5)
使用MyData.objects.create(title=f_title)
将其保存到数据库并拥有ID
然后访问tags
g = MyData.objects.create(title=f_title)
g.tags.add( "mytag" )
g.save()
答案 1 :(得分:2)
更改订单。先保存 - 分配一个主键 - 然后搞乱标签。
答案 2 :(得分:2)
如错误所示,在添加标记之前,MyData对象必须具有主键。这是因为标签是通过多对多关系存储的,您需要ID才能将其链接到单独的表中。简单的解决方案是:
g = MyData(title=f_title)
g.save()
g.tags.add( "mytag" )
g.save()