Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django/taggit-错误:在访问MyData对象的标记之前,它需要有一个主键值_Django_Django Forms_Django Views_Django Taggit - Fatal编程技术网

django/taggit-错误:在访问MyData对象的标记之前,它需要有一个主键值

django/taggit-错误:在访问MyData对象的标记之前,它需要有一个主键值,django,django-forms,django-views,django-taggit,Django,Django Forms,Django Views,Django Taggit,我正在尝试使用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() 由于某些原因,当我试图保

我正在尝试使用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对象需要有一个主 在您可以访问其 标签


有什么想法吗?谢谢大家!

改变顺序。先保存(分配主键),然后再处理标记。

更改顺序。先保存(分配主键),然后再处理标记。

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

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

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

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

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

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

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

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