为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Django 显示 KeyError?

为什么 Django 显示 KeyError?

牧羊人nacy 2021-11-23 18:08:28
我一直在查看 Django 文档中有关如何将 CSS 类添加到模型表单输入的示例。但是,当我使用该解决方案时,Django 引发了一个 KeyError,我无法真正查明来源,因为调试屏幕显示的代码行是模板中完全不相关的 CSS 类。解决方案:def __init__(self, *args, **kwargs):        super().__init__(*args, **kwargs)        self.fields['title', 'content', 'category'].widget.attrs.update({'class': 'form-control'})        self.fields['content'].widget.attrs.update(size='100', height='50')错误信息:KeyError at /new/('title', 'content', 'category')Request Method:     GETRequest URL:    http://localhost:8000/new/Django Version:     2.1.7Exception Type:     KeyErrorException Value:    ('title', 'content', 'category')Exception Location:     /home/bob/python-virtualenv/blog/bin/blog/posts/forms.py in __init__, line 11提前致谢!
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

您不能以这种方式使用多个键:


self.fields['title', 'content', 'category']

您必须分别查找它们:


self.fields['title']

self.fields['content']

...

或者在你的代码中:


for key in ['title', 'content', 'category']:

    self.fields[key].widget.attrs.update({'class': 'form-control'})

请注意,在 Python 中允许使用元组作为字典中的键:


>>> a = {}

>>> a['some','tuple'] = 'value'

>>> a

{('some', 'tuple'): 'value'}


查看完整回答
反对 回复 2021-11-23
  • 1 回答
  • 0 关注
  • 703 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信