Джанго-таггит. Мультитеги в модели. Получить данные

Вот модель с несколькими тегами. Как получить данные из tags_en? tags.names() работает хорошо, но не tags_en.names() и не tags_en.all()

from taggit.models import GenericUUIDTaggedItemBase, TaggedItemBase, TagBase
from taggit_selectize.managers import TaggableManager

class UUIDTaggedItem(GenericUUIDTaggedItemBase, TaggedItemBase):
    class Meta:
        verbose_name = _("Tag")
        verbose_name_plural = _("Tags")


class BaseTag (TagBase):
    pass


class UUIDTaggedItemEn (GenericUUIDTaggedItemBase, TaggableManager):
    tag = models.ForeignKey(BaseTag)


class Item(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    tags = TaggableManager(blank=True, through=UUIDTaggedItem)
    tags_en = TaggableManager(blank=True, through=UUIDTaggedItemEn)

Сообщение об ошибке:

FieldError в /admin/item/item/

Не удается преобразовать ключевое слово «Нет» в поле. Возможные варианты: категория, идентификатор, элемент, имя, ярлык, группа тегов, uuidtaggeditemen.


person Phill M    schedule 11.07.2017    source источник


Ответы (1)


сначала вы должны добавить атрибут Manager к другому классу, например

class UUIDTaggedItemEn (GenericUUIDTaggedItemBase, TaggableManager):
    tag = models.ForeignKey(BaseTag)
    objects = = models.Manager()

то вы можете вызвать фильтр использования, например

tags_en.objects.filter(id=...)
tags_en.objects.all()

проблема заключается в том, что с несколькими менеджерами тегов вы вызываете их через другие классы, и когда вы пошли, чтобы получить объекты, вам нужно вызвать эти классы. Надеюсь, что помог, если не оставить комментарий

person hansTheFranz    schedule 11.07.2017
comment
Теперь это: объект '_TaggableManager' не имеет атрибута 'objects' - person Phill M; 11.07.2017
comment
когда вы добавили объекты в другой класс, вы выполнили миграцию ./manage.py, а затем миграцию ./manage.py? - person hansTheFranz; 11.07.2017
comment
Я воссоздал таблицы с нуля. Никаких проблем во время makemigrations/migrate. - person Phill M; 11.07.2017