TypeError: __init__() принимает 1 позиционный аргумент, но 2 был передан новый аргумент
Я разрабатываю простое приложение для аутентификации в django, но получаю эту ошибку: TypeError: init() принимает 1 позиционный аргумент, но было задано 2
моя точка зрения
from .forms import RegisterForm, LoginForm
from django.contrib.auth.views import LoginView
from django.shortcuts import render, redirect
from django.contrib import messages
from django.views import View
from .forms import RegisterForm
def home(request):
return render(request, 'users/home.html')
class RegisterView(View):
form_class = RegisterForm
initial = {'key': 'value'}
template_name = 'users/register.html'
def dispatch(self, request, *args, **kwargs):
if request.user.is_authenticated:
return redirect(to='/')
return super(RegisterView, self).dispatch(request, *args, **kwargs)
def get(self, request, *args, **kwargs):
form = self.form_class(initial=self.initial)
return render(request, self.template_name, {'form': form})
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Account created for {username}')
return redirect(to='/')
return render(request, self.template_name, {'form': form})
class CustomLoginView(LoginView):
form_class = LoginForm
def form_valid(self, form):
remember_me = form.cleaned_data.get('remember_me')
if not remember_me:
self.request.session.set_expiry(0)
self.request.session.modified = True
return super(CustomLoginView, self).form_valid(form)
урлы заявок
urlpatterns = [
path('', home, name='users-home'),
path('register/', RegisterView.as_view(), name='users-register'), # This is what we added
path('login/', CustomLoginView.as_view(redirect_authenticated_user=True, template_name='users/login.html',
authentication_form=LoginForm), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
]
моя форма
и последний мой параметр добавить эти
- добавьте имя приложения к установленному приложению
- SESSION_COOKIE_AGE = 60 * 60 * 24 * 30
- LOGIN_REDIRECT_URL = '/'
- LOGIN_URL = 'login'
Я нашел решение, просто удалив библиотеку Pillow с помощью pip uninstall Pillow и удалите библиотеку django и установите их заново. это сработало для меня...