我有類似這樣的一個模型的「矩陣」:建立從Django的查詢
class MyModel(models.Model):
name = models.CharField(max_length = 30)
a = models.ForeignKey(External)
b = models.ForeignKey(External, related_name='MyModels_a')
def __unicode__(self):
return self.a + self.b.name + self.b.name
所以,當我查詢它,我得到這樣的:
>>> MyModel.objects.all()
[<MyModel: Name1AB>,<MyModel: Name2AC>,<MyModel: Name3CB>,<MyModel: Name4BA>,<MyModel: Name5BA>]
而且我想代表這些數據類似於以下內容。
[[ [] , [Name1AB] , [Name2AC] ]
[ [Name4BA, Name5BA] , [] , [] ]
[ [] , [Name3CB] , [] ]]
正如你可以看到行將在模型中'a'而列將是'b' 我可以做到這一點,但這需要很長時間,因爲在真實數據庫中我有很多數據。我想知道是否有構建Django的方式來做到這一點。
我做這樣的:
mymodel_list = MyModel.objects.all()
external_list = External.objects.all()
for i in external_list:
for j in external_list:
print(mymodel_list.filter(a=i).filter(arrl=j).all(),end='')
print()
感謝
我會檢查文件的過濾器。我正在使用print,因爲我正在測試一個腳本(我們遠沒有開始製作視圖)而且它不是很多人,因爲在'external'中我不能有重複;然而,我對'a'和'b'之間的關係感興趣,因爲ab與ba不同。但這些都是很棒的想法,我想我可以再次開始研究,謝謝 – Darkade