1

だから私はDjangoモデル(「アイテム」)のインスタンスと、見つけたいフィールドと関連フィールドのリストを持っています。現在、私はこれをやっています:

related_fields = ['customer__name', 'customer__address__postcode', 'date']
for related_field in related_fields:
    sub_item = item
    for part in related_field.split('__'):
        sub_item = getattr(sub_item, part)
    item_fields.append(sub_item)

それが理にかなっていることを願っていますが、これが最も効率的な方法ですか? 確かに、SQLでこれをはるかに迅速に行うDjangoユーティリティ関数がどこかにあるに違いありませんか?

4

1 に答える 1

1

使用できますQuerySet.values_list。例えば:

related_fields = ['customer__name', 'customer__address__postcode', 'date']
item_fields = Item.objects.filter(pk=item).values_list(*related_fields, flat=True)[0]
于 2013-09-26T13:44:29.340 に答える