7

次のように、特定のユーザーに関連付けられた一連のオブジェクトがあります。

from django.db import models
from django.contrib.auth.models import User
from taggit.managers import TaggableManager

class LibraryObject(models.Model):
    title = models.CharField(max_length=255)
    owner = models.ForeignKey(User)
    tags = TaggableManager()
    class Meta:
        abstract = True

class Book(LibraryObject):
    summary = models.TextField()

class JournalArticle(LibraryObject):
    excerpt = models.TextField()

# ...etc.

次のようにすべてのタグを取得できることを知っています。

>>> from taggit.models import Tag
>>> Tag.objects.all()

しかし、特定のユーザーに関連付けられているすべてのタグを取得するにはどうすればよいでしょうか? のようなものを想像Tag.objects.filter(owner=me)していますが、もちろんうまくいきません。

参考までに、django-taggit のドキュメントをご覧ください

4

1 に答える 1

21

私は同様の問題に遭遇しました、そしてここに私の解決策があります:

tags = Tag.objects.filter(book__owner=me)
tags |= Tag.objects.filter(journalarticle__owner=me)
tags = tags.distinct()

お役に立てば幸いです〜

于 2012-08-03T06:00:33.843 に答える