1
からオブジェクトを作成します。Djangoの大部分は、クエリセット
data = ModelA.objects.values('date').annotate(total=Sum('amount'), average=Avg('amount'))
# <QuerySet [{'date': datetime.datetime(2016, 7, 15, 0, 0, tzinfo=<UTC>), 'total': 19982.0, 'average': 333.03333333333336}, {'date': datetime.datetime(2016, 7, 15, 0, 30, tzinfo=<UTC>), 'total': 18389.0, 'average': 306.48333333333335}]>
はQuerySet
内の各ハッシュからModelB
オブジェクトを作成するためにdata
を使用することが可能ですか?
私はQuerySet
を反復処理し、解凍でき実現しそうのようにそれを実行します。
for q in data:
ModelB.objects.create(date=q['date'], total=q['total'], average=q['average'])
しかし、よりエレガントな方法は何ですか?ほとんどの場合、bulk_create
形式になっています。
私はこれがより効率的だと思います。forループの 'create'は各要素の保存をトリガーしますが、bulk_createのためには1つのSQLだけが存在します。 –
@MenglongLiもちろん、もちろん – ubadub