BaseForm.__init__() 得到了意外的关键字参数“my_username”

问题描述 投票:0回答:1

一旦我在 django 中制作了一个简单的登录表单,我就收到了这个错误

我搜索了很多,但没有找到任何东西我在这里阅读了很多文章和github在此处输入图像描述

这是我的表单代码和视图代码。

我用 html 制作它,它可以工作,但在 django 项目中我创建了名为 form.py 的文件

在尝试运行服务器时遇到此错误时编写代码

我尝试在 django 的文档中搜索

有谁可以帮忙吗

django django-views django-forms typeerror
1个回答
0
投票

您不将数据作为命名参数传递给表单,而是将其作为类似字典的对象传递。事实上

request.POST
(和
request.GET
)等已经是类似字典的对象了:

def my_login(request):
    user_data = LoginPage(request.POST, request.FILES)
    # …

但是你可以使用

user_data.save()
:你使用的是
Form
,而不是
ModelForm
,所以它没有
.save()
方法。您可以检查是否有
user_data.is_valid()
,如果是,则访问
user_data.cleaned_data['my_username]
以获取为该字段输入的数据。


注意:函数通常用 snake_case 编写,而不是 PascalCase,因此它是 建议将函数重命名为

my_login
,而不是
myLogin


注意:通常

Form
ModelForm
…Form
后缀结尾, 避免与模型名称发生冲突,并明确我们是 使用表单。因此,最好使用
LoginPageForm
而不是
Login_Page

© www.soinside.com 2019 - 2024. All rights reserved.