Python Django (урок 10) - авторизация пользователей

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

Огромная Вам благодарность за вашу деятельность. Отличные видео без воды. Удачи Вам!

databox
Автор

Уроки очень классные! Но для данного урока есть некоторое дополнение.
В самом конце мы ограничиваем добавление постов путем проверки авторизован ли пользователь или нет в шаблоне. На самом деле такой проверки в шаблоне не достаточно. Необходимо также осуществлять проверку на авторизацию пользователя и на стороне сервера при получении формы методом POST. И если пользователь не авторизован перенаправлять его на страницу авторизации.

Для этого необходимо добавить проверку на авторизацию в функцию addcomment().

Но проще написать свой декоратор:
def auth_required(function):
    def check_auth(request):
        if not :
            return
        return function(request)
    return check_auth

После чего функция будет выглядеть следующим образом:
@auth_required
def addcomment(request, article_id):
    if request.POST and ('pause' not in request.session):
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.comments_article =
            form.save()
           
            request.session['pause'] = True
    return redirect('/articles/get/%s/' % article_id)

hatsuhats
Автор

Спасибо! Помогло разобраться с вопросом

ВасилийТеркин-ябв
Автор

Для того, чтобы имя пользователя выводилось при переходе на любые другие страницы сайта, его необходимо передавать в каждое представление? Так выходит? или есть более простой способ?

lumiera
Автор

Спасибо за урок!
Только возникла проблема.. При входе проверка проходит, но пользователь не остается в сессии.

То есть, все работает, кроме auth.login()

zhop
Автор

как прикрутить авторизацию глобально к всему сайту?

ПашаШульга-чп
Автор

Мне кажется, использование абсолютных путей (например в settings.py) - очень плохая привычка

Feoness
Автор

У меня одного, почему-то, кнопка "войти" на страничке с логином и паролем не приняла общий стиль из foundation?

aidze
Автор

Использую 1.9 джангу, csrf токен что-то таким способом не передается. Чтобы не разбираться, декоратор ставлю @csrf_exempt, чтобы и без него пропускало, пока разрабатываю.

SerpkoBakotiinii
Автор

Такой вопрос, кнопка войти нажимаем один раз все хорошо в адресной строке браузера наш адрес 127.0.0.1:8000/auth/login перешли в форму авторизации и допустим мы не регистрируемся, а еще раз нажимаем на кнопку войти и мы переходим на главную страницу, но в адресной строке браузера уже то есть уже задвоился адрес, третий раз нажмем будет и так далее, как этого избежать или я что то сделал неправильно?

xxxxxx
Автор

AttributeError at /auth/login/
'tuple' object has no attribute 'get'

в чем может быть причина? уже все проверила, не вижу...

АннаПознякова-йж
Автор

Эх, как же все любят путать авторизацию с аутентификацией.

ЮлияМихайлова-шх
Автор

Если я вас встречу на улице, я вам отдам все деньги

mellbonus