У меня сейчас есть эти модели:
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_id' is an invalid keyword argument for this function
Однако, если я это сделаю:
>>> cat.tag_item.create()
Я получаю только что созданный пустой элемент.
Я также не понимаю, как мне выполнить запрос, чтобы получить все теги для определенного элемента? Класса Tag нет, потому что мне не нужно указывать атрибут through
на ManyToManyField, поскольку нет никаких дополнительных данных, поэтому я не могу использовать менеджер тегов для выполнения чего-то вроде Tag.objects.filter(item_id=3)