En django-taggit, ¿cómo obtener etiquetas para objetos que están asociados con un usuario específico?

Tengo una serie de objetos que están asociados a usuarios específicos, así:

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.

Sé que puedo recuperar todas las etiquetas como esta:

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

Pero, ¿cómo puedo recuperar todas las etiquetas asociadas con un usuario específico? me estoy imaginando algo como Tag.objects.filter(owner=me), pero por supuesto que no funciona.

Como referencia, aquí está el documentación de django-taggit.

preguntado el 04 de julio de 12 a las 04:07

1 Respuestas

Me he encontrado con un problema similar, y aquí está mi solución:

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

Espero que ayude ~

Respondido 06 ago 12, 16:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.