我有一個表,看起來像這樣的Django通過查詢相關的表訪問的M2M領域的屬性
class Person(User):
"""
This model represents person's personal and
professional details.
"""
attribute1 = models.CharField(max_length=100)
attribute2 = models.TextField()
attribute3 = models.TextField()
attribute4 = models.ForeignKey(Receptionist)
referred_attribute1 = models.ManyToManyField(Hobby)
class Hobby(models.Model):
name = models.CharField(max_length=100)
使用案例: 一個人 P1具有愛好 H1,H2,H3(在表Hobby中定義[3個單獨的條目])。 現在我想檢索一個具有所有屬性和屬性的Person對象,包括Hobbies。對於我正在執行以下事項:
Person.objects.values("attribute1",
"attribute2",
"referred_attribute1").get(attribute3="p1's attribute")
我要的是:
{'attribute1':'p1_attribute1',
'attribute2':'p1_attribute2',
'referred_attribute':['h1','h2','h3']}
什麼,我得到的是:
[{'attribute1':'p1_attribute1',
'attribute2':'p1_attribute2',
'referred_attribute':'h1'},
{'attribute1':'p1_attribute1',
'attribute2':'p1_attribute2',
'referred_attribute':'h2'},
{'attribute1':'p1_attribute1',
'attribute2':'p1_attribute2',
'referred_attribute':'h3'}]
有沒有辦法讓我想要的結果直接從一個查詢集?由於我不想手動重新安排上述結果!
這不是一個直接的答案,只是一個建議:對多對多關係使用不同的查詢,然後加入它。 – alejoss
「使用不同的查詢」 - 你能詳細說明嗎? – tehkidnextdoor