• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Как исправить неверный вывод request.user в django?

Andrei_

Green Team
04.08.2020
67
2
BIT
0
Доброго времени суток, при создании авторизации отказался от велосипеда LoginView, так как переопределение и переделывание под то, что мне надо, займет гораздо больше времени, чем если написать самому
К сути проблемы:
Вот некоторые поля модели
Python:
class User(AbstractUser):
    username = models.CharField(max_length=100, null=True, blank=True, unique=True)
    login = models.CharField(max_length=100, verbose_name="Логин", blank=False, default="NULL")
    password = models.CharField(max_length=100, verbose_name="Пароль", blank=False, default="Null")
Кусок кода из вьюшки авторизации:
Python:
from django.views.generic import View
from django.contrib import auth
from myapp.models import User


class Login(View):
    def post(self, request):
        login = request.POST.get("username", "")
        password = request.POST.get("password", "")
        login_objects = [login.get("login") for login in User.objects.all().values()]
        if login in login_objects:
            if User.objects.filter(login = login).values()[0].get("password") == password:
                user = auth.authenticate(login=login, password=password)
                auth.login(request, user)
                try:
                    return render (request, "page.html")
                finally:
                    return redirect("url_page")
Также есть зарегистрированный суперпользователь

И в любом месте в любом время request.user выдает админа, даже AnonymousUser получить не удается

Что делать?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!