Криво работает авторизация на Django, get_response при авторизации не может передать аргумент
Добавил регистрацию, авторизацию и профиль, теперь выдает ошибку при авторизации TypeError at /login/
SessionMiddleware.init() missing 1 required positional argument: 'get_response'
Вот код views.py
from django.shortcuts import render, redirect
from django.views.generic.base import View
from django.contrib.auth import authenticate, login
from django.contrib.auth.forms import AuthenticationForm
from django.urls import reverse_lazy
from django.views import generic
from .models import Post, Likes
from .form import CommentsForm, SignUpForm
class PostView(View):
"""Wiwod Zapisei"""
def get(self, request):
info = Post.objects.all()
return render(request, 'blog2/blog3.html', {'post_list': info})
'''отдельная страница записи'''
class PostDetail(View):
def get(self, request, pk):
post = Post.objects.get(id=pk)
return render(request, 'blog2/bg.html', {'post': post})
class AddComments(View):
'''добавление комментария'''
def post(self, request, pk):
form = CommentsForm(request.POST)
if form.is_valid():
form = form.save(commit=False)
form.post_id = pk
form.save()
return redirect(f'/{pk}')
def get_client_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
return ip
class AddLike(View):
def get(self, request, pk):
ip_client = get_client_ip(request)
try:
Likes.objects.get(ip=ip_client, pos_id=pk)
return redirect(f'/{pk}')
except:
new_like = Likes()
new_like.ip = ip_client
new_like.pos_id = int(pk)
new_like.save()
return redirect(f'/{pk}')
class DelLike(View):
def get(self, request, pk):
ip_client = get_client_ip(request)
try:
lik = Likes.object.get(ip=ip_client)
lik.delete()
return redirect(f'/{pk}')
except:
return redirect(f'/{pk}')
'''RegProf'''
class SignUpView(generic.CreateView):
form_class = SignUpForm
success_url = reverse_lazy('login')
template_name = 'blog2/signup.html'
def login_view(request):
if request.method == 'POST':
form = AuthenticationForm(data=request.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect('blog2/profile.html')
else:
form = AuthenticationForm()
return render(request, 'blog2/login.html', {'form': form})
def profile_view(request):
user = request.user
return render(request, 'blog2/profile.html', {'username': user.username})
Вот код form.py
from django import forms
from django.contrib.auth import login
from .models import Comments
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.contrib.auth.models import User
class CommentsForm(forms.ModelForm):
class Meta:
model = Comments
fields = ('name', 'email', 'text_comments')
'''Prof'''
class SignUpForm(UserCreationForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = ('username', 'email', 'password1', 'password2')
def save(self, commit=True):
user = super(SignUpForm, self).save(commit=False)
user.email = self.cleaned_data['email']
if commit:
user.save()
return user
И settings MIDDLEWARE
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
Так же urls.py
urlpatterns = [
path('', views.PostView.as_view()),
path('<int:pk>/', views.PostDetail.as_view()),
path('review/<int:pk>/', views.AddComments.as_view(), name='add_comments'),
path('<int:pk>/add_likes/', views.AddLike.as_view(), name='add_likes'),
path('<int:pk>/del_likes/', views.DelLike.as_view(), name='del_likes'),
path('signup/', SignUpView.as_view(), name='signup'),
path('login/', login_view, name='login'),
path('logout/', LogoutView.as_view(next_page='blog2/blog3'), name='logout'),
path('profile/', views.profile_view, name='profile')
]
Прошу помощи у знающих.