我有一個模型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