首页 > 解决方案 > django 两个过滤器在合并时具有不同的键名且具有相同的键名

问题描述

在 django 我有两个查询,如:

First = User.objects.filter(id=data.get('id')).values('first_id','first_name')
Second = User.objects.filter(id=data.get('id')).values('second_id','second_name')
combined_results = list(chain(competitorFirst, competitorSecond))

在此之后,我得到如下输出:

{'first_id': '1', 'first_name': 'Hornets'}
{'second_id': '2', 'second_name': 'corto'}

我真正想要的是:

{'id': '1', 'name': 'Hornets'}
{'id': '2', 'name': 'corto'}

谁能帮我解决这个问题。

标签: pythonpython-3.xdjangodjango-queryset

解决方案


尝试这个:

from django.db.models import F

First = User.objects.filter(id=data.get('id')).values(id=F('first_id'), name=F('first_name'))
Second = User.objects.filter(id=data.get('id')).values(id=F('second_id'), name=F('second_name'))
combined_results = list(chain(competitorFirst, competitorSecond))

使用 F 设置名称。


推荐阅读