我有一个模型A
其中包含一个通用的外键关系与限制选择3个其他模型(认为它们是B
,C
和D
)在同一个应用程序。我知道我们不能使用filter
或get
或任何其他查询集操作的泛型外键的局限性。Django通用外键 - 考虑SQL性能的好还是坏?
所以要实现这样的事情,我必须首先筛选B,C和D的对象作为queryset,遍历它们并使用通用的反向关系来获取A
对象作为列表(而不是queryset)。
我不确定它会如何影响数据库的SQL性能,因为查询不是直接的。 PS:我需要使用泛型的外键,所以请为任何SQL改进建议,而不是重新设计模型。
使用Django 1.4.3和Postgres。
什么是“通用”外键? –
我使用了与此处所述相同的设置,https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#id1 – Babu