В классе LoginUserForm(LoginView) в классе Meta атрибут fields вообще ни на что не влияет. Его можно не прописывать совсем, можно прописать только одно поле fields = ['username', ], можно поменять порядок полей fields = ['password', 'username']. Вообще ничего не меняется, в браузере отображаются последовательно 2 инпута: Логин и Пароль. Можно вообще выдумать вместо указанных полей свои любые поля. Например вместо 'username' написать 'foo', ничего не изменится. Из чего делаю вывод, что атрибут fields никак не используется в данном случае.
Есть вопрос насчёт параметра next, как можно сформировать параметр next в ссылке при переходе на страницу авторизации автоматически? Т.е чтобы туда передавалась ссылка на предыдущую страницу автоматически, а не вручную, как было в примере
Здравствуйте. Делаю все как у вас, но при выходе кидает на пустую страницу и в терминале выдает такую ошибку. 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 на главную. Подскажите пожалуйста где искать ошибку.?
Я могу ошибаться, и при этом вдруг кому то поможет не тратить время на поиск ошибки. У вас django свежая, как и у меня, класс LogoutView принимает только POST запросы, при этом мы вызываем его GET запросом и нам django отвечает 405 ошибкой. Т.е. если вы хотите реализовать logout через класс то это должна быть кнопка с методом POST и csrf токеном. А если надо logout по ссылке, сделайте через views. Если будет рабочий сайт, то контекст изменений нам говорит, что logout нужно делать через POST запрос в виду безопасности.
Добрый день. Подскажите по функции get_user_model(). Что значит что она использует текущую модель пользователя и если она изменится, то функция подтянет новую модель автоматически ? Стандартная модель это User, если её поменяем, то автоматически подтянется функцией ? А если я создам вообще свою модель пользователя Us со своими полями, то как её использовать в Мета ???
в django 5.0 LogoutView теперь работает только через метод post
в base.html кнопку Выйти сделал через форму:
{% csrf_token %}
Выйти
спасибо большое, что написал это! Долго не мог понять почему GET не работает и выкидывает ошибку...
вот вариант чтоб разметку не нарушать:
{% csrf_token %}
{{ user.username }} | Выйти
Спасибо, что написал. Правда нашел уже инфо в яндексе. Долго не мог понять почему в методе GET 405 ошибку выдает.
Спасибо
Ой спасибо, не мог вспомнить как задать пути авторизации в settings, а тут вы напомнили про LOGIN_REDIRECT_URL, LOGIN_URL, LOGOUT_REDIRECT_URL
Спасибо, Сергей! Здоровья тебе🤝
Спасибо, лучшее видео по Django
отличная подача материала!
Спасибо. Отличный контент.
В классе LoginUserForm(LoginView) в классе Meta атрибут fields вообще ни на что не влияет. Его можно не прописывать совсем, можно прописать только одно поле fields = ['username', ], можно поменять порядок полей fields = ['password', 'username']. Вообще ничего не меняется, в браузере отображаются последовательно 2 инпута: Логин и Пароль.
Можно вообще выдумать вместо указанных полей свои любые поля. Например вместо 'username' написать 'foo', ничего не изменится. Из чего делаю вывод, что атрибут fields никак не используется в данном случае.
Да, кстати я хотел еще почту прописать, чтобы если забыл пароль его на почту присылали, но поле не появилось.
Закомментил fields и продолжает работать так.
Спасибо. Тяжело это next дается, видимо, потому что на практиике пока не сталкивался.🎈
Спасибо. А я что-то мучалась с request headers Referer для возвращения на страницу.
Есть вопрос насчёт параметра next, как можно сформировать параметр next в ссылке при переходе на страницу авторизации автоматически? Т.е чтобы туда передавалась ссылка на предыдущую страницу автоматически, а не вручную, как было в примере
Добавьте LoginRequiredMixin к представлению и при переходе на закрытую страницу next будет автоматически добавляться на странице логина
@@eclipse77231 Да, увидел далее по плейлисту)
Здравствуйте. Делаю все как у вас, но при выходе кидает на пустую страницу и в терминале выдает такую ошибку. 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 на главную. Подскажите пожалуйста где искать ошибку.?
Это вопрос в ТГ-канал по Django (нужны детали).
Я могу ошибаться, и при этом вдруг кому то поможет не тратить время на поиск ошибки. У вас django свежая, как и у меня, класс LogoutView принимает только POST запросы, при этом мы вызываем его GET запросом и нам django отвечает 405 ошибкой. Т.е. если вы хотите реализовать logout через класс то это должна быть кнопка с методом POST и csrf токеном. А если надо logout по ссылке, сделайте через views. Если будет рабочий сайт, то контекст изменений нам говорит, что logout нужно делать через POST запрос в виду безопасности.
Добрый день. Подскажите по функции get_user_model(). Что значит что она использует текущую модель пользователя и если она изменится, то функция подтянет новую модель автоматически ? Стандартная модель это User, если её поменяем, то автоматически подтянется функцией ? А если я создам вообще свою модель пользователя Us со своими полями, то как её использовать в Мета ???
Все верно и о создании своей модели дальше по курсу.
Жду Java Spring или Java продвинутый день 4.
Скрытые видео будут доступны?
да, через день открываются )
👍