Пример из доки:
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
class TaggedItem(models.Model):
tag = models.SlugField()
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
def __unicode__(self):
return self.tag
Далее из тех же доков:
guido = User.objects.get(username='Guido')
t = TaggedItem(content_object=guido, tag='bdfl')
t.save()
Вопрос. Как отфильтровать всех юзеров, у которых есть любые теги?
Дока скромно умалчивает сей момент.
Из-за особенностей реализации GenericForeignKey, вы не можете
использовать такое поле с фильтрами (filter() и exclude(), н-р) в
запросах API базы данных. Поскольку GenericForeignKey это не совсем
“обычное” поле,примеры ниже не будут работать...
Спасибо.