django - 如何使用石墨烯获得 area.names 的不同值?
问题描述
我在 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 数据库如此不同是行不通的)
解决了:
不同的没有工作。所以我只写了一个短循环,它只跟踪列表中重复的字符串名称,并且如果它的名称尚未添加到重复列表中,则仅附加整个“区域”对象
result = []
dupl_counter = []
for area in areas:
if area not in dupl_counter:
dupl_counter.append(area)
result.append(Area(name=area))
print(area)