python - 在 django "login() missing 1 required positional argument: ' 用户中出现此错误“”

标签 python django python-3.x django-models django-forms

我是 Django 的新用户,我刚刚在 Django 1.11 中为我的网站创建了一个注册和登录系统。当我进入我网站的登录部分时,我感到很震惊。我收到如前所述的错误“login() missing 1 required positional argument: 'user'”,我无法弄清楚登录函数和变量“user”有什么问题。请帮助我。提前致谢。这是我的代码:

urls.py:

from django.conf.urls import url
from . import views
from django.contrib.auth import login


app_name='one'

urlpatterns = [
    url(r'^games$',views.games,name='games'),
    url(r'^others$',views.others,name='others'),
    url(r'^about$',views.about,name='about'),
    url(r'^upload$',views.UploadFile.as_view(),name='upload'),
    url(r'^register$',views.UserFormView.as_view(),name='register'),
    url(r'^login/$', login, name='login'),

]

views.py:

from django.shortcuts import render,redirect
from django.contrib.auth import authenticate, login
from django.views.generic.edit import CreateView
from .models import file
from django.views.generic import View
from .forms import user_form
class UserFormView(View):
    form_class = user_form
    template_name = 'one/register_form.html'

    def get (self,request):
        form = self.form_class(None)
        return render(request,self.template_name,{'form':form})

    def post (self,request):
        form = self.form_class(request.POST)
        if form.is_valid():
            user = form.save(commit = False)
            username= form.cleaned_data['username']
            password= form.cleaned_data['password']
            user.set_password(password)
            user.save()

            user= authenticate(username=username, password=password)

            if user is not None:

                if user.is_active:
                    login(request, user)
                    redirect('one:profile')

        return render(request,self.template_name,{'form':form}) 

最佳答案

你输入错误。您需要导入 login View :

from django.contrib.auth.views import login

目前您已经导入了 login实际登录用户的函数。

您正在使用的 login View 在 Django 1.11 中已弃用。您可以切换到新的基于类的 LoginView :

from django.contrib.auth.views import LoginView

url(r'^login/$', LoginView.as_view(), name='login'),

关于python - 在 django "login() missing 1 required positional argument: ' 用户中出现此错误“”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47801453/

相关文章:

python-3.x - 大叶 map 未在 Spyder 中显示

python - 使用 Python 在 ImageJ/FIJI 中自动阈值

python - 无法保存模型,出现错误 : "TypeError expected string or bytes-like object"

django - GeoDjango 在 Windows 10 中找不到 GDAL 库

python - "from module import class"从同一模块导入其他类

python - Pip Install 抛出错误代码 1

python - 关于 Django 在 urlpattern 中的 pk

python - Pandas 根据最相似的值合并数据帧

Python:将列表更新为字典值

Django 缓存未刷新