django/taggit - 错误:MyData 对象需要有主键值才能访问其标签

发布于 2024-10-29 11:06:36 字数 517 浏览 2 评论 0原文

我正在尝试使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

贱贱哒 2024-11-05 11:06:36

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

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

use MyData.objects.create(title=f_title) for it to be saved to the DB and have an Id
then access tags

g = MyData.objects.create(title=f_title)  
g.tags.add( "mytag" )
g.save()
呆橘 2024-11-05 11:06:36

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

Change the order. Save first -- which assigns a primary key -- then mess with the tags.

无风消散 2024-11-05 11:06:36

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

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

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:

g = MyData(title=f_title)   
g.save()
g.tags.add( "mytag" )
g.save()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文