#62. Классы LoginView, LogoutView и AuthenticationForm | Уроки по Django 4

Поделиться
HTML-код
  • Опубликовано: 30 сен 2024
  • Практический курс по Django: stepik.org/a/1...
    Телеграм-канал Django: t.me/django_se...
    Инфо-сайт: proproprogs.ru...
    Авторизация пользователей с использованием классов LoginView, LogoutView и AuthenticationForm фреймворка Django. Параметры LOGIN_REDIRECT_URL, LOGOUT_REDIRECT_URL и LOGIN_URL.
    62_sitewomen.zip: github.com/sel...

Комментарии • 27

  • @Viiitos
    @Viiitos 9 месяцев назад +29

    в django 5.0 LogoutView теперь работает только через метод post
    в base.html кнопку Выйти сделал через форму:
    {% csrf_token %}
    Выйти

    • @katsuyorii
      @katsuyorii 8 месяцев назад

      спасибо большое, что написал это! Долго не мог понять почему GET не работает и выкидывает ошибку...

    • @alexeygrom1834
      @alexeygrom1834 7 месяцев назад +6

      вот вариант чтоб разметку не нарушать:

      {% csrf_token %}
      {{ user.username }} | Выйти

    • @ДмитрийКрашенинников-г7ш
      @ДмитрийКрашенинников-г7ш 2 месяца назад

      Спасибо, что написал. Правда нашел уже инфо в яндексе. Долго не мог понять почему в методе GET 405 ошибку выдает.

    • @andredru4278
      @andredru4278 Месяц назад

      Спасибо

  • @OxoTHuK13
    @OxoTHuK13 9 месяцев назад +5

    В классе LoginUserForm(LoginView) в классе Meta атрибут fields вообще ни на что не влияет. Его можно не прописывать совсем, можно прописать только одно поле fields = ['username', ], можно поменять порядок полей fields = ['password', 'username']. Вообще ничего не меняется, в браузере отображаются последовательно 2 инпута: Логин и Пароль.
    Можно вообще выдумать вместо указанных полей свои любые поля. Например вместо 'username' написать 'foo', ничего не изменится. Из чего делаю вывод, что атрибут fields никак не используется в данном случае.

    • @ЗНАКОМЫЙСВАРЩИК
      @ЗНАКОМЫЙСВАРЩИК 8 месяцев назад +1

      Да, кстати я хотел еще почту прописать, чтобы если забыл пароль его на почту присылали, но поле не появилось.

    • @ЗНАКОМЫЙСВАРЩИК
      @ЗНАКОМЫЙСВАРЩИК 8 месяцев назад

      Закомментил fields и продолжает работать так.

  • @КириллКалита-ч3ж
    @КириллКалита-ч3ж 10 месяцев назад +4

    Спасибо, лучшее видео по Django

  • @evgenyzakiev693
    @evgenyzakiev693 10 месяцев назад +3

    Спасибо, Сергей! Здоровья тебе🤝

  • @jadrezz.g
    @jadrezz.g Месяц назад +1

    Есть вопрос насчёт параметра next, как можно сформировать параметр next в ссылке при переходе на страницу авторизации автоматически? Т.е чтобы туда передавалась ссылка на предыдущую страницу автоматически, а не вручную, как было в примере

    • @eclipse77231
      @eclipse77231 Месяц назад +1

      Добавьте LoginRequiredMixin к представлению и при переходе на закрытую страницу next будет автоматически добавляться на странице логина

    • @jadrezz.g
      @jadrezz.g 24 дня назад +1

      @@eclipse77231 Да, увидел далее по плейлисту)

  • @NikolayPuh
    @NikolayPuh 9 месяцев назад +2

    Здравствуйте. Делаю все как у вас, но при выходе кидает на пустую страницу и в терминале выдает такую ошибку. Method Not Allowed (GET): /users/logout/
    Method Not Allowed: /users/logout/
    [21/Dec/2023 05:05:15] "GET /users/logout/ HTTP/1.1" 405 0 Редирект прописан в файле settings на главную. Подскажите пожалуйста где искать ошибку.?

    • @selfedu_rus
      @selfedu_rus  9 месяцев назад

      Это вопрос в ТГ-канал по Django (нужны детали).

    • @zxcvbnm472
      @zxcvbnm472 6 месяцев назад +4

      Я могу ошибаться, и при этом вдруг кому то поможет не тратить время на поиск ошибки. У вас django свежая, как и у меня, класс LogoutView принимает только POST запросы, при этом мы вызываем его GET запросом и нам django отвечает 405 ошибкой. Т.е. если вы хотите реализовать logout через класс то это должна быть кнопка с методом POST и csrf токеном. А если надо logout по ссылке, сделайте через views. Если будет рабочий сайт, то контекст изменений нам говорит, что logout нужно делать через POST запрос в виду безопасности.

  • @HeyArtem
    @HeyArtem 4 месяца назад +1

    Спасибо. Тяжело это next дается, видимо, потому что на практиике пока не сталкивался.🎈

  • @zakchips
    @zakchips 10 месяцев назад +1

    Спасибо. А я что-то мучалась с request headers Referer для возвращения на страницу.

  • @ГубкаБоб-р8ъ
    @ГубкаБоб-р8ъ 9 месяцев назад +1

    Ой спасибо, не мог вспомнить как задать пути авторизации в settings, а тут вы напомнили про LOGIN_REDIRECT_URL, LOGIN_URL, LOGOUT_REDIRECT_URL

  • @АндрейХренов-л5к
    @АндрейХренов-л5к 10 месяцев назад +2

    отличная подача материала!

  • @andredru4278
    @andredru4278 10 месяцев назад +1

    Спасибо. Отличный контент.

  • @ЕвгенийСоловей-г4ш
    @ЕвгенийСоловей-г4ш 7 месяцев назад +1

    Добрый день. Подскажите по функции get_user_model(). Что значит что она использует текущую модель пользователя и если она изменится, то функция подтянет новую модель автоматически ? Стандартная модель это User, если её поменяем, то автоматически подтянется функцией ? А если я создам вообще свою модель пользователя Us со своими полями, то как её использовать в Мета ???

    • @selfedu_rus
      @selfedu_rus  7 месяцев назад

      Все верно и о создании своей модели дальше по курсу.

  • @ibrahimoglu
    @ibrahimoglu 10 месяцев назад +1

    👍

  • @НиколайМирных-л3ь
    @НиколайМирных-л3ь 10 месяцев назад +1

    Скрытые видео будут доступны?

    • @selfedu_rus
      @selfedu_rus  10 месяцев назад

      да, через день открываются )

  • @Chichilipa
    @Chichilipa 10 месяцев назад +2

    Жду Java Spring или Java продвинутый день 4.