私はこれに似たモデルを持っています:
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()
ありがとう