比方說,我有以下Django模型:如何用Django Query交叉兩個ManyToMany字段?
class A(models.Model):
keywords = models.ManyToManyField(Keyword)
class B(models.Model):
keywords = models.ManyToManyField(Keyword)
我有一個對象。我想查找所有B對象,其中B對象中的某個關鍵字與A對象中的某個關鍵字相同。
什麼是寫這個查詢的正確方法?
這是否會導致多個單個查詢或單個連接的數據庫查詢? – ModulusJoe
只有一個查詢。您可以在Django shell中使用'print Blog.objects.filter(keywords__in = Keyword.objects.filter(articles = article))。query'進行確認。 –
我實際上開啓了查詢日誌,最後使用SET GLOBAL general_log ='ON'; 但是.query技巧將會非常有用。謝謝 – ModulusJoe