Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django';非类型';对象没有属性';有#u头';当子类LoginView_Python_Django_Django Views - Fatal编程技术网

Python Django';非类型';对象没有属性';有#u头';当子类LoginView

Python Django';非类型';对象没有属性';有#u头';当子类LoginView,python,django,django-views,Python,Django,Django Views,我想在django上尝试自定义登录,并想在登录之前处理一些表单数据。我走到这里: class mylogin(auth_views.LoginView): def form_valid(self, form): print("datas :D!", form.cleaned_data['password']) super().form_valid(form) 所有其他内容都应保留在LoginView中。 因此,在my URL.py中,我有: path('

我想在django上尝试自定义登录,并想在登录之前处理一些表单数据。我走到这里:

class mylogin(auth_views.LoginView):
    def form_valid(self, form):
        print("datas :D!", form.cleaned_data['password'])
        super().form_valid(form)
所有其他内容都应保留在LoginView中。 因此,在my URL.py中,我有:

path('login/', views.mylogin.as_view(template_name='public/login.html'), name='login'),
错误,当我尝试登录时为:

AttributeError: 'NoneType' object has no attribute 'has_header'

您需要返回调用super的结果

return super().form_valid(form)
如果表单有效,函数应该返回一个
HttpResponse
对象

这里调用
super().form\u valid(form)
函数,但不返回它生成的
HttpResponse
,因此应该添加
return
语句:

class mylogin(auth_views.LoginView):

    def form_valid(self, form):
        print("datas :D!", form.cleaned_data['password'])
        return super().form_valid(form)
class mylogin(auth\u views.LoginView):
def表单_有效(自身、表单):
打印(“datas:D!”,form.cleaned_data['password'])
return super().form\u有效(form)

当然,您也可以决定在
form\u valid
函数中构造一个
HttpResponse
,或者,例如,在返回响应之前先“后处理”响应,但无论如何,合同是
form\u valid
应该返回
HttpResponse

您应该
返回
super的结果().form_valid(form)
。感谢您的解释!:)