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)

我希望这是有道理的,但这是最有效的方法吗?肯定有一个 Django 实用函数可以在 SQL 中更快地执行此操作吗?

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 回答