【问题标题】:Django - KeyError at /auctions/create 'category.' (New to Django, any help is appreciated!)Django - KeyError at /auctions/create 'category.' (Django 新手,感谢您的帮助!)
【发布时间】:2020-12-24 23:48:31
【问题描述】:

我是 Django 新手,我正在创建一个下拉菜单,以便用户可以从下拉菜单中选择一个类别。当用户创建新条目时,此类别将保存在网站上的条目中。我迁移了模型,但我得到:/auctions/create 的 KeyError '类别。'非常感谢任何帮助。

Views.py(用于创建类别下拉菜单的代码)

models.py

forms.py

这里是 views.py 中的 create 部分,用于创建新条目。 CreateForm() 的“表单”是创建条目的模型表单。 CategoryForm() 的“form1”是类别下拉列表的模型表单。创建功能完全正常,直到我添加了类别和类别表单的部分。

urls.py 用于适用的功能(我已经尝试了第一类的许多变体,但我仍然无法弄清楚它应该是什么,我尝试了 str 和 int。) 对不起,我是初学者,但任何帮助都会很棒!

path("auctions/create", views.create, name="create"),
path("listings/<int:id>", views.listingpage, name="listingpage"),
path("cat/<int:id>", views.cat, name="cat"),

【问题讨论】:

    标签: python django django-models django-views django-forms


    【解决方案1】:

    当您尝试访问不在字典中的键时会引发 Python KeyError 异常,我认为您的错误可能来自这里

    categoryCreated = categories.objects.create(category=category)
    

    你应该写你的型号名称Categories,而不是categories

    【讨论】:

    • 谢谢,我刚才确实发现了问题——我有 if form1.is_valid(): 但是下一行说的是 category = form 而不是 category = form1。所以那是我的错误!我还阅读了有关型号名称的更多信息,并将我的名称改为大写,感谢您的提示。
    猜你喜欢
    • 2018-10-11
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多