我有类似这样的一个模型的“矩阵”:建立从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