Django 登录表单错误:`BaseForm.__init__()` 得到了意外的关键字参数 'my_username'

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

我在 Django 中创建了一个简单的登录表单,但是当我尝试运行服务器时出现此错误:

Error screenshot

我搜索了很多,但一无所获。我在这里和 GitHub 上阅读了很多文章。

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

我用 HTML 制作了它并且它有效,但在 Django 项目中,我创建了一个名为

form.py
的文件并编写了代码。当我尝试运行服务器时,我收到此错误。

我尝试在 Django 文档中搜索。

请问有人可以帮忙吗?

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

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

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.