Уведомления

Группа в Telegram: @pythonsu

#1 Март 16, 2019 18:59:50

R_Malson
Зарегистрирован: 2019-03-16
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация пользователя, наследованного от AbstractUser

Доброго времени суток! Помогите, пожалуйста. Никак не могу разобраться с аутендификацией. Она работает только для пользователя, созданного через консоль - superuser ( админка ). А других пользователей не авторизирует.

Это views.py:

 def login(request):
    args = {}
    args.update(csrf(request))
    form = LoginForm(request.POST)
    username = request.POST.get('username', '')
    password = request.POST.get('password', '')
    user = auth.authenticate(username=username, password=password)
    if user is not None:
        auth.login(request, user)
        return redirect('/profile')
    else:
        args['login_error'] = "Пользователь не найден"
        args['form'] = form
        return render(request, 'my_test/login.html', args)
Сама модель юзера:
 class User(AbstractUser):
    sur_name = models.CharField(max_length=50)
    direction = models.CharField(max_length=50)
    degree = models.CharField(max_length=50)
    group = models.CharField(max_length=50, null=True)
    course = models.CharField(max_length=50, null=True)
    points = models.IntegerField
    def get(self):
        return self
    def get_full_name(self):
        return self.last_name + ' ' + self.first_name + ' ' + self.sur_name
    def __str__(self):
        return self.first_name
login.html:
 {% extends "my_test/base.html" %}
{% block login %}
    <form method="post">
    {% csrf_token %}
        {{ form.username }}
        {{ form.password }}
        {% if login_error %}
            <label class="errors">{{ login_error }}</label>
        {% endif %}
        <button type="submit" class="button">Войти</button>
    </form>
{% endblock %}

base.html:
 <!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Мой тест</title>
</head>
<body>
    {% if user.is_authenticated %}
        <h3>Аутендифицирован</h3>
        {% block content %}
        {% endblock %}
    {% else %}
        <h3>Не Аутендифицирован</h3>
        {% block login %}
        {% endblock %}
    {% endif %}
</body>
</html>

profile.html:
 {% extends "my_test/base.html" %}
{% block content %}
    <p>Привет, {{ user.get_full_name }}</p>
{% endblock %}

Офлайн

#2 Март 17, 2019 04:29:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Авторизация пользователя, наследованного от AbstractUser

А в настройках вы задали, какой класс ассоциируете с классом пользователя?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version