2

我正在尝试使用 django-taggit(请参阅)。这就是我的代码中的内容:

模型.py

class MyData(models.Model):
    title = models.CharField(blank=True, max_length=50)
    .....
    tags = TaggableManager()

视图.py

g = MyData(title=f_title)   
g.tags.add( "mytag" )
g.save()

出于某种原因,当我尝试保存标签和数据时,我收到了这个错误:

MyData 对象需要有一个主键值才能访问它们的标签。

有任何想法吗?谢谢!

4

3 回答 3

6

用于MyData.objects.create(title=f_title)将其保存到数据库并具有 Id 然后访问tags

g = MyData.objects.create(title=f_title)  
g.tags.add( "mytag" )
g.save()
于 2011-04-05T02:27:39.300 回答
2

改变顺序。首先保存——它分配一个主键——然后弄乱标签。

于 2011-04-05T02:25:50.970 回答
2

正如错误所说,在添加标签之前,您的 MyData 对象必须有一个主键。这是因为标签是通过多对多关系存储的,您需要 ID 以便将其链接到单独的表中。简单的解决方案是:

g = MyData(title=f_title)   
g.save()
g.tags.add( "mytag" )
g.save()
于 2011-04-05T02:27:07.173 回答