1
我有與濾鏡操作的Django的select_related功能的使用問題,這是我的問題,我有三大類:濾波器select_related Django上
class A:
# various fields here
class B(models.model):
related_A = models.ForeignKey(A)
related_C = models.ForeignKey(C)
attribute1 = models.CharField(..)
# Other attributes
class C(models.model):
# Attributes
我想要做的是,通過根據另一參數ATTRIBUTE1(從類B)上的鍵related_C B類上過濾得到類A。 要正確地說明它,我有一個函數get_class_A(個體經營)在我的C類
get_class_A(self,param):
classes_B = B.objects.filter(related_C = self,attribute1 = param)
它返回類B的一個QuerySet我想要做的就是跟隨ForeignKey的指向爲了什麼改造B的這個查詢集爲對象A的列表
我嘗試過各種東西,如:
classes_A = B.objects.select_related('A').filter(related_C = self, attribute1 = param)
有些變化,但毫無效果。有誰知道如何做到這一點?
感謝
就是這樣,我試圖創建一個ManyToMany關係,但有額外的參數。我不知道你可以通過模型添加一些額外的屬性。我會嘗試一下,我認爲這會更容易。 謝謝! – Kobz
@Kobz:當你聲明一個從'B'到'A'的外鍵時,Django可以讓你查詢反向關係(從'A'到'B')。查看關於[跨越關係的查找]的文檔(https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships)。我強烈建議您徹底重新閱讀文檔和教程,否則您可能會遇到很多困惑。 –
我會那樣做的。我開始使用Django的方式沒有完全「未優化」(添加不必要的查詢),現在我試圖儘可能使用Django功能做一些乾淨的代碼,並且有一些概念我不掌握然而。感謝您的幫助,您對我非常有幫助:) – Kobz