所以我有一个Django模型的实例(“item”)以及我想要找到的字段和相关字段的列表。目前我正在这样做:
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中执行此操作吗?
答案 0 :(得分: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]