0
Django的ORM有一個名爲select_related()
的方法用於加入相關表。如何在不包含所有列的情況下在Django中包含相關列
但是,如果包含的字段是另一個模型的外鍵,則默認行爲似乎是在相關模型中包含所有列。
舉例來說,如果我有型號:
class A(models.Model):
field1 = models.CharField(...)
field2 = models.CharField(...)
class B(models.Model):
field1 = models.CharField(...)
field2 = models.ForeignKey(A)
print str(B.objects.all().select_related('field2').query))
輸出:
SELECT myapp_b.id, myapp_b.field1, myapp_b.field2_id, myapp_a.id, myapp_a.field1, myapp_a.field2 FROM ...
但我只希望包括A.field1
,從A
不是所有的領域,所以我試圖做:
print str(B.objects.all().select_related('b__field1').query))
但輸出完全相同的查詢。
如何阻止Django從select_related()
中列出的外鍵字段中包含所有字段?
我試過類似的東西,而是因爲我用的是滿場的名字得到一個錯誤每一個。訣竅是確保兩組字段名稱不重疊。 – Cerin