如何将字典的键值追加到lis中

2024-04-19 14:45:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个函数:

def eventcateg_detail(request):
    ca = EventTypeCategory.objects.values()
    for i in range(0, len(ca)):
       pk_sub = ca[i]['sub_categ_id']
       if (pk_sub!=None):
          category = EventTypeCategory.objects.get(id = pk_sub)
          category = category.name
    return render(request,"events/categ.html",{
       'obj': ca
        })

上述功能定义:

首先我得到一本ca变量的字典

[{'Message_slug': u'critical', 'sub_categ_id': None, 'user_id': 1L, 'id': 190L, 'name': u'Critical'}, {'Message_slug': u'information', 'sub_categ_id': 190L, 'user_id': 1L, 'id': 192L, 'name': u'Information'}]

现在我想为每个内容在sub\u categ\u id中定义一个值。我在pku子变量中得到了这个。如您所见,pk\u sub正在返回一个id(它本身是外键)。我想得到所有这些值,它们指向那个pk\u sub。我也得到这个:

Critical
Information
Amit Pal

现在我想附加这个类别名称列成一张单子。这样我就可以很容易地传递到我的模板。我该怎么做?你知道吗

我尝试在下一行输入以下代码:

categories = categories.append(category)

但没有成功:(


Tags: namenoneidmessageobjects定义requestca
1条回答
网友
1楼 · 发布于 2024-04-19 14:45:13

两件事:

  1. 您可以直接遍历列表,而不是按索引:for category in ca:。在该循环的主体中,category将绑定到ca中的每个项
  2. 您从不定义categories,因此不能附加到它;在任何情况下,list.append返回None,并破坏性地修改列表,因此您必须忽略赋值。你知道吗

最后,作为一个风格的问题,当测试无时,通常使用x is not None而不是!=。你知道吗

更新:注意@agf的注释,它描述了使用Django ORM执行此任务的正确方法。你知道吗

相关问题 更多 >