django/taggit - 错误:MyData 对象需要有主键值才能访问其标签
我正在尝试使用 django-taggit (参见)。这就是我的代码中的内容:
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 对象需要有一个主对象 键值,然后您才能访问它们 标签。
有什么想法吗?谢谢你!
I'm trying to use django-taggit (see). This is what I have in my code:
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()
For some reason when I'm trying to save the tags and the data I'm getting this error:
MyData objects need to have a primary
key value before you can access their
tags.
Any ideas? Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
MyData.objects.create(title=f_title)
将其保存到数据库并具有 Id然后访问
标签
use
MyData.objects.create(title=f_title)
for it to be saved to the DB and have an Idthen access
tags
改变顺序。首先保存——分配一个主键——然后弄乱标签。
Change the order. Save first -- which assigns a primary key -- then mess with the tags.
正如错误所示,在添加标签之前,您的 MyData 对象必须具有主键。这是因为标签是通过多对多关系存储的,并且您需要 ID,以便可以将其链接到单独的表中。简单的解决方案是:
As the error says, your MyData object must have a primary key before you add tags. This is because the tags are stored via a many to many relationship, and you need the ID so you can link it in a separate table. Simple solution is to do: