Python Django ManyToManyField创建问题

Python Django ManyToManyField创建问题,python,django,django-models,many-to-many,Python,Django,Django Models,Many To Many,我目前有以下型号: class Category(models.Model): name = models.CharField(max_length=200) parent = models.ForeignKey('self', blank=True, null=True, related_name='child') description = models.TextField(blank=True,null=True) class Item(models.Model)

我目前有以下型号:

class Category(models.Model):
    name = models.CharField(max_length=200)
    parent = models.ForeignKey('self', blank=True, null=True, related_name='child')
    description = models.TextField(blank=True,null=True)

class Item(models.Model):
    name = models.CharField(max_length=500)
    ...
    tag = models.ManyToManyField(Category, null=True, blank=True, related_name='tag_item')
我的问题是,我不能将标签添加到我已经创建的任何项目中。如果我尝试执行以下操作:

>>> cat = Category.objects.get(pk=1)
>>> cat.tag_item.create(item_id = 1)
我得到
TypeError:“item\u id”是此函数的无效关键字参数

但是,如果我这样做:

>>> cat.tag_item.create()
我最终得到一个新创建的空项


我也不明白如何执行查询以获取特定项目的所有标记?没有标记类,因为我不必通过ManyToManyField上的属性指定一个,因为没有额外的数据,所以我不能使用标记管理器执行类似于Tag.objects.filter(item_id=3)

的操作。请看一些示例

基本上,你应该做:

class Item(models.Model):
    name = models.CharField(max_length=500)
    ...
    tags = models.ManyToManyField(Category, blank=True)
要创建项目、标记并将其关联,请执行以下操作:

item = Item(name='test')
item.save()
tag = Category(name='foo')
item.tags.add(tag)
要查询所有标记,请执行以下操作:

item.tags.all()

请看一些例子

基本上,你应该做:

class Item(models.Model):
    name = models.CharField(max_length=500)
    ...
    tags = models.ManyToManyField(Category, blank=True)
要创建项目、标记并将其关联,请执行以下操作:

item = Item(name='test')
item.save()
tag = Category(name='foo')
item.tags.add(tag)
要查询所有标记,请执行以下操作:

item.tags.all()