【发布时间】:2016-05-03 05:55:43
【问题描述】:
我有一个带有通用外键的简单模型:
class Generic(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
我想过滤此表中所有具有非空 content_object 的条目,即过滤掉所有内容对象不再存在的Generic 实例:
Generic.objects.filter(~Q(content_object=None))
这不起作用,给出异常:
django.core.exceptions.FieldError: 字段 'content_object' 没有 生成自动反向关系,因此不能使用 用于反向查询。如果是 GenericForeignKey,请考虑添加 泛型关系。
将GenericRelation 添加到引用的内容类型模型没有任何区别。
任何关于如何实现这一点的帮助将不胜感激,非常感谢。
编辑:我意识到我可以级联删除,但是在我的情况下这不是一个选项(我希望保留数据)。
【问题讨论】:
标签: python django django-queryset django-generic-views django-contenttypes