Форум сайта python.su
0
Доброго времени суток! Помогите, пожалуйста. Никак не могу разобраться с аутендификацией. Она работает только для пользователя, созданного через консоль - 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
{% 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 %}
<!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>
{% extends "my_test/base.html" %} {% block content %} <p>Привет, {{ user.get_full_name }}</p> {% endblock %}
Офлайн
568
А в настройках вы задали, какой класс ассоциируете с классом пользователя?
Офлайн