Django的taggit。模型中的多标签。检索数据

时间:2017-07-11 09:16:45

标签: django django-taggit

这是一个包含多个标签的模型。如何从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)

错误信息是:

  

/ admin / item / item /

中的FieldError      

无法将关键字“无”解析为字段。选择是:category,id,   item,name,slug,taggroup,uuidtaggeditemen

1 个答案:

答案 0 :(得分:1)

首先,您应该将Manager属性添加到其他类,如

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

然后你可以调用像

这样的使用过滤器
tags_en.objects.filter(id=...)
tags_en.objects.all()

问题在于你通过其他类调用它们的多个taggablemanagers,当你去接收你需要调用这些类的对象时。希望如果不发表评论会有所帮助