如何创建这个嵌套的python字典?

2024-09-27 02:14:48 发布

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

这就是我想要的(警告:这里是Python noob,这可能是一种不正确的表示方式,但我希望您能得到我想要的东西)

forms = { 
            { 'id' : '1',
              'form' : form_something,
            },
            { 'id'  : '4',
              'form' : form_something2,
            }
        }  

现在我的问题是如何在django视图中创建这个字典,到目前为止是这样->

^{pr2}$

Tags: djangogtform视图id警告字典方式
3条回答

这将创建词典列表:

links = Links.objects.all()
forms = []
for link in links:
    form = LinkForm(instance = link)
    forms.append({'id': link.id, 'form': form})

如果要创建字典字典,则必须具有以下键:

^{pr2}$

注意,我更改了代码中空格的位置,以匹配标准的Python方式,但这并不重要。在

嵌套字典的形式为:

forms = { 
       'key1': { 'id' : '1',
          'form' : form_something,
        },
       'key2': { 'id'  : '4',
          'form' : form_something2
        }
    }  

我添加了键并删除了form_something2后的逗号。在

我想你想做的是:

forms = { '1': form_something,
      '4':form_something2,
     }

这样你就可以用id来查找表单(这是一种常见的查找方法)

您可以这样做:

^{pr2}$

现在我很好奇你为什么要把表格保存在字典里?我觉得很奇怪。在

希望这有帮助

我从来没有使用过django,但是在纯python中,它应该类似于(您需要表单的列表/元组,而不是表单的字典):

links = Links.objects.all()
forms = []
for link in links:
  form = LinkForm(instance = link)
  # the comma tells python to treat the contents inside the ( ) as a list
  forms.append({ 'id' : link.id, 'form' : form })


编辑:

根据评论中的讨论,在性能方面,与元组相比,列表是一个更好的选择。编辑了上面的代码以反映此更改。在

相关问题 更多 >

    热门问题