【问题标题】:Django-taggit. Multi-tags in a model. Retrieve dataDjango-taggit。模型中的多标签。检索数据
【发布时间】:2017-07-11 09:16:45
【问题描述】:

这是一个包含多个标签的模型。如何从 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/ 处的字段错误

无法将关键字“无”解析为字段。选项有:类别、ID、 项目、名称、slug、标签组、uuidtaggeditemen

【问题讨论】:

    标签: django django-taggit


    【解决方案1】:

    首先你应该给另一个类添加一个Manager属性,比如

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

    然后你可以调用使用过滤器像

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

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

    【讨论】:

    • 现在是:'_TaggableManager'对象没有属性'objects'
    • 当您将对象添加到另一个类时,您是否 ./manage.py makemigration 然后 ./manage.py migrate?
    • 我从头开始重新创建表。在 makemigrations/migrate 期间没有任何问题。
    猜你喜欢
    • 2015-05-02
    • 2017-10-14
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多