2015-09-25 44 views
0

我使用的是Django 1.8。我有三張桌子。使用預取相關的多對多表到多字段

A(models.Model): 
    name = models.CharField(max_length=128) 

B(models.Model): 
    name = models.CharField(max_length=128) 

AB(models.Model): 
    a = models.ForeignKey(A) 
    b = models.ForeignKey(B) 

是否有可能使用與預取有關的所有A與它們對應的行中的AB?可能是這樣的:

A.objects.filter(name='abc').prefetch_related('AB') 
+0

你可以翻轉你的查詢? 'AB.objects.filter(a__name ='abc')...' – Sayse

回答

4

您應該使用相關名稱而不是類名稱本身。像這樣的事情會做這項工作:

A.objects.filter(name='abc').prefetch_related('ab_set') 
+0

AttributeError:在預訂對象上找不到'ab_set','ab_set'是prefetch_related()的一個無效參數 – Anuj

+0

您是否用您的實際替換了'ab_set'型號名稱? –

+0

我用我的模型名稱取代了ab - 所有小寫字母。 – Anuj

相關問題