我在 schema.py 中的解析器看起来像这样
def resolve_areas(self, info, **kwargs):
result = []
dupfree = []
user = info.context.user
areas = BoxModel.objects.filter(client=user, active=True).values_list('area_string', flat=True)
在 GraphiQL 中,我正在使用此查询:
{
areas {
edges {
node {
id
name
}
}
}
}
并得到像这样开始的输出:
{
"data": {
"areas": {
"edges": [
{
"node": {
"id": "QXJlYTpkZWZ",
"name": "default"
}
},
{
"node": {
"id": "QXJlYTptZXN",
"name": "messe"
}
},
{
"node": {
"id": "QXJlYTptZXN",
"name": "messe"
}
},
但我希望 name 变量具有不同的值 (使用如此独特的 MySQL 数据库是行不通的)
答案 0 :(得分:0)
distinct 不起作用。所以我只是写了一个短循环,它只跟踪列表中重复的字符串名称,如果它的名称尚未添加到重复列表中,则只附加整个“区域”对象
result = []
dupl_counter = []
for area in areas:
if area not in dupl_counter:
dupl_counter.append(area)
result.append(Area(name=area))
print(area)