Базовая аутентификация пользователя в django, Django authentication system

Поделиться
HTML-код
  • Опубликовано: 18 ноя 2024

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

  • @zbyhnieupaazierski
    @zbyhnieupaazierski 10 месяцев назад +17

    В Django 5-ой версии была убрана возможность логаута через GET-запрос. Из-за чего представленная в видео реализация стала выдавать ошибку 405 "method not allowed (GET)". Обойти её можно заменив строку
    Logout
    К примеру на
    {% csrf_token %}
    Log out

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

      Ок, поправим в следующих видео, спасибо

    • @ЯрославОсипов-ь3р
      @ЯрославОсипов-ь3р 7 месяцев назад

      Лучший, я столько часов с этим провозился...

    • @ДмитроКуліков-ю8ш
      @ДмитроКуліков-ю8ш 5 месяцев назад

      Боже, дай Бог тебе здоровья, я потратил 3 часа на решение проблемы...

    • @mksmvnv
      @mksmvnv 2 месяца назад

      thanks bro

  • @МишаМихаил-ф7х
    @МишаМихаил-ф7х 2 года назад +11

    Спасибо за ролик. Крутой материал по современному Джанго. Потому что устаревшей инфы полно, а новой мало на рутубе

    • @wstanley
      @wstanley  2 года назад +2

      Спасибо за отзыв! Значит буду ещё ролики записывать)))

  • @kirill_pael_supa
    @kirill_pael_supa Год назад +4

    огромное спасибо. Без Вас я бы никогда не разобрался с регистрацией/авторизацией в джанге. Мегареспект

    • @wstanley
      @wstanley  Год назад +1

      Пожалуйста! :)

  • @jk2noob511
    @jk2noob511 Год назад +10

    Большое спасибо за видео. Очень информативный и современный разбор, отдельное спасибо за ссылки на документацию 😊

    • @wstanley
      @wstanley  Год назад

      Спасибо за отзыв!

    • @desizend
      @desizend 11 месяцев назад

      @@wstanley Как вы решили ошибку Manager isn't available; 'auth.User' has been swapped for 'users.User'? На 18:53

  • @shift4153
    @shift4153 Год назад +1

    вы мой спаситель😭 очень приятно и грамотно объяснили, из той кучи, которую я пересмотрела, ваш ролик действительно информативный и хорошо снят, спасибо огромное!!!

  • @ViselGracia
    @ViselGracia Год назад +4

    Ты просто невероятен. Спасибо за подробный и качественный материал ! 10 авторизаций из 10 !

    • @wstanley
      @wstanley  Год назад +1

      Спасибо! Скоро продолжу видео писать!

  • @katarinaos9599
    @katarinaos9599 2 года назад +2

    Спасибо за видео! Все наглядно и понятно, теперь понимаю, куда дальше лезть и в чем разбираться!

    • @wstanley
      @wstanley  2 года назад

      Вам спасибо за отзыв!

  • @serjikpy6665
    @serjikpy6665 2 года назад +9

    Спасибо за видео. Довольно интересно, но советую когда пишешь код и/или что-то делаешь, не делай так быстро. Начинающему будет довольно сложно успеть за тобой. Ну и не ленись хоть немножко объяснять свои шаги, не только что ты делаешь, но и для чего это.

    • @wstanley
      @wstanley  2 года назад

      Спасибо за фидбек, вроде стараюсь все детально рассказать, опыта в преподавании информации видимо не хватает. Обращу на этот момент внимание.

    • @serjikpy6665
      @serjikpy6665 2 года назад +2

      @@wstanley В целом всё хорошо, но обязательно по работай над скоростью, иногда, очень часто, ты делаешь вс1ё очень быстро, тебе как знающему человеку может показаться что всё ок, а вот новичок, забьёт на просмотр уже после первых двух минут

    • @showrun4747
      @showrun4747 Год назад +1

      нажмите шестеренку на видео справа внизу и выставьте скорость воспроизведения поменьше. некоторых авторов надо замедлять, но большинство я без проблем слушаю на скорости 1.5

  • @artur.tokranov
    @artur.tokranov 2 года назад +2

    Спасибо большое! Надеюсь, будут еще выпуски...

    • @wstanley
      @wstanley  2 года назад

      Будут обязательно, но позже. Сейчас совсем времени не хватает.(((

  • @helloiveqw5290
    @helloiveqw5290 11 месяцев назад +1

    Невероятно качественный контент, благодарю

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

      Спасибо за отзыв

  • @3agoskin
    @3agoskin 2 года назад +3

    Очень хорошие видео! Спасибо за вашу работу!

    • @wstanley
      @wstanley  2 года назад

      Спасибо за отзыв! :)

  • @yrysit3796
    @yrysit3796 2 года назад +1

    Впервые пишу отзывы. Спасибо за видео!!!

    • @wstanley
      @wstanley  2 года назад +1

      Очень приятно! Рад что видео нравятся :)

  • @nonstop249
    @nonstop249 2 года назад +1

    В представлении регистрации метод post можно сократить на самом деле. Метод save() и так возвращает нам юзера (как я понял):
    def post(self, request):
    form = UserCreationForm(request.POST)
    if form.is_valid():
    user = form.save()
    login(request, user)
    return redirect('index')

    • @wstanley
      @wstanley  2 года назад

      Да, form.save() возвращает пользователя, но перед тем как логинить пользователя в системе надо запустить функцию authenticate() она не просто проверяет пароль и логин и возвращает пользователя, она пытается пройти аутентификацию во всех своих механизмах аутентификации нашего приложения. По умолчанию оно одно - [django.contrib.auth.backends.ModelBackend] но этот механизм можно расширять и написать еще несколько механизмов при необходимости, для защиты от атак например. А функция authenticate() на вход принимает сырой пароль, не хешированый поэтому мы получаем его с формы password = form.cleaned_data.get('password1'). Ну в принципе, если расширять систему не планируется, то при регистрации можно этот пункт пропустить, но не стоит. :) Ссылка почитать - docs.djangoproject.com/en/4.0/topics/auth/customizing/#specifying-authentication-backends

  • @montecristo31
    @montecristo31 Год назад +1

    Спасибо, немного все запутано, но думаю с практикой все уложется)

    • @wstanley
      @wstanley  Год назад

      Всегда пожалуйста! А что конкретно запутано? На что обратить внимание мне, чтобы понятнее в дальнейшем стало?

    • @montecristo31
      @montecristo31 Год назад +1

      @@wstanley Ну, я вот только что снова все пересмотрел, и все абсолютно понятно. Не помню что мне тогда показалось запутанным, наверное просто запутался в тех auth формах.

  • @zhannafedurina9395
    @zhannafedurina9395 Год назад +2

    Здравствуйте, спасибо большое за видео. Очень информативно и полезно, но возник вопрос. Можно ли прописывать стили для встроенных форм?

  • @vahadg
    @vahadg 2 года назад +1

    добрый вечер! видео очень полезное!

    • @wstanley
      @wstanley  2 года назад

      Добрый! Рад что видео приносит пользу, скоро вернусь к записи уроков

  • @АйбекЖанибеков-з6ч
    @АйбекЖанибеков-з6ч 2 года назад +2

    спасибо за видео очень полезно

    • @wstanley
      @wstanley  2 года назад

      Спасибо за отзыв! Скоро вернусь к записи видео, будет еще много полезного :)

  • @xyiz2
    @xyiz2 2 года назад +3

    А что надо сделать с pycharm ом , что бы по функциям и модулям так легко переключаться? Чтоб они как ссылки подсвечивались.

    • @wstanley
      @wstanley  2 года назад +2

      Ничего, просто зажимаешь ctrl и наводишь мышку, кликом перейдет к функции. Но если функция в подключенной библиотеке то надо указать ему интерпритатор и все

  • @baffeto-n9g
    @baffeto-n9g Год назад +1

    Спасибо за урок. Было полезно. Единственное не могу понять, почему у меня не меняется template для password_reset

    • @wstanley
      @wstanley  Год назад

      template_name надо указать у класса, если я правильно понял и шаблон должен лежать по этому путь, ну и путь существовать)))

  • @coolgames139
    @coolgames139 6 месяцев назад

    Добрый день, спасибо за то, что достаточно подробно показали процесс написания ВСЕГО кода, позволяет лучше понять что и как делать)
    Но у меня стало выдавать ошибку на странице сайта: Using the URLconf defined in project.urls, Django tried these URL patterns, in this order:
    admin/
    [name='home']
    users/
    The current path, accounts/, didn’t match any of these.
    Можете подсказать, в чем проблема? Я только только начал изучать django, всё перерыл и никак не могу вкурить на что смотреть, чтобы понять в чем проблема и главное как это исправлять. Буду очень благодарен, если поможете)

  • @otakuKuch
    @otakuKuch Год назад +1

    В самом начале после создания модели, не получается сделать миграцию, выводит целый пак ошибок, при этом в настройках при написании AUTH_USER_MODEL = 'user.User' так же выводит ошибку + подсказки не вылезают при написании. Можешь подсказать в чем дело?

  • @PythonDevelopment
    @PythonDevelopment 2 года назад +1

    Thanks for the great content. Awesome, dude!

  • @desizend
    @desizend 11 месяцев назад +1

    Как вы решили ошибку Manager isn't available; 'auth.User' has been swapped for 'users.User'? На 18:53

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

      Вроде долее рассказываю, надо чтобы в форме наш пользователь был, т. К. Мы его переопределили

  • @Ginji_IT
    @Ginji_IT Год назад +2

    У меня ошибка, 'main.user', but app 'main' (main я так назвал изначально) doesn't provide model 'user'. Что делать?

    • @wstanley
      @wstanley  Год назад +1

      Добрый день! Из ошибки ничего не понятно, надо весь трейсбек смотреть, загрузите весь трейсбек сюда dpaste.org/ либо обратитесь в группу в телеге t.me/pydjango/805214 там всегда помогут и быстрее

  • @-top4ik196
    @-top4ik196 2 года назад +1

    Там при регистрации, можно добавить типо ещё никнейм , год рождения и т.д если да , то в какой строчке кода можно добавить этл

    • @wstanley
      @wstanley  2 года назад +2

      Надо добавить эти поля в модель User после надо добавить их в форму UserCreateForm вроде называется. И в описание админки в файле admin

  • @Аддцкийбоссиотельхазбин

    Спасибо большое, но как-то сложно получается шаблоны в проекте обработка в приложении и user в приложении часть урлов в проекте другая часть в приложении с одной стороны для глаз было бы проще если все лежала в приложении user.
    Ну чтобы при добавлении других приложений регистрация была немного другой.
    Так же интересно как можно расширит модель пользователя ну допустим дата рождения, телефонный номер, и какое-нибудь свойство связанная через forenkey либо другая связка
    И как посетителя без авторизации редиректить на регистрацию допустим для отображения информации нам всегда нужен пользователь,

    • @wstanley
      @wstanley  2 года назад +1

      Всегда пожалуйста! Часть урлов в проекте, а часть в приложении, возможно тебе пока сложно воспринимается т.к. не привык еще. Т.е. в джанге написана уже логика регистрации и если что-то надо изменить то не стоит переписывать всю ее, а можно только часть переопределить и работать с этим. У меня в голове это уложено и нормально воспринимается. Более того если ты в будущем будешь использовать библиотеки для авторизации там тоже все скрыто и при кастомизации так же переопределяют частично. Про расширение юзера немного затронуто в роликах "один к одному" и "многие ко многим". Думаю запишу ролики про кастомизацию пользователя следующими. Для редиректа на регистрацию не авторизованного пользователя используй декоратор login_required например, вот ссылка - docs.djangoproject.com/en/4.0/topics/auth/default/#the-login-required-decorator

  • @ВладиславФадеев-е7е

    Здравствуй, дорогой автор! Подскажи пожалуйста, а зачем в видео переопределяется модель User? Никак не могу понять

    • @wstanley
      @wstanley  Год назад +1

      Это в документации по джанге прописано, что всегда необходимо переопределять пользователя, чтобы в будущем если понадобится его доработать не больно было. Правило хорошего тона, такое

    • @ВладиславФадеев-е7е
      @ВладиславФадеев-е7е Год назад

      @@wstanley спасибо за ответ! Теперь понятно)

  • @nomadicus77
    @nomadicus77 Год назад +1

    Ответьте буду благодарен за ответ, а как вы возвращаете страничку home.html, если вы не пишете во views функцию для её возврата? Мне вот этот момент вообще не понятен. У вас вот такой путь
    path(' ', TemplateView.as_view(template_name='home.html'), name='home'). Разве не нужно вот так путь
    path(' ', views.home, name='home')? В чём разница не могу понять

    • @wstanley
      @wstanley  Год назад

      Доброе утро! В данном случае нам представление нужно только для того чтобы отдать шаблон, для этого в джанге написан TemplateView он тоже наследуется от базового View github.com/django/django/blob/main/django/views/generic/base.py#L220
      Просто его удобно можно использовать прям в урле
      Если например требуется еще и контекст какойто передавать, то необходимо будет прописывать в view его и расширять
      ссылка в доке - docs.djangoproject.com/en/4.1/ref/class-based-views/base/#templateview

    • @nomadicus77
      @nomadicus77 Год назад +1

      @@wstanley тобиж не нужно писать ничего во views? А то я пересмотрел несколько раз и не видел, чтобы вы писали во views просто через урлы можно передать шаблон?

    • @wstanley
      @wstanley  Год назад

      я же импортирую с самой джанги TemplateView там и написано все github.com/django/django/blob/main/django/views/generic/base.py#L220
      Это типо заготовка стандартная для простого рендера шаблона, в джанге много заготовок для быстрой разработки есть

    • @nomadicus77
      @nomadicus77 Год назад +1

      @@wstanley спасибо вам❤️

  • @ruslanways
    @ruslanways 2 года назад +2

    Спасибо за видео!
    В форме логинации - вывод ошибок - разве он не реализован по умолчанию?
    ты делаешь вывод ошибок сам. но если этого не делать - все работает также.
    Или я что-то не понимаю? Или дело в версии джанги?

    • @wstanley
      @wstanley  2 года назад

      Имеешь ввиду в шаблоне? Шаблон же полностью создаем сами.
      Либо дай ссылку на код где вывод ошибок? github.com/djangouroki/authenticate_basic

    • @ruslanways
      @ruslanways 2 года назад +1

      насколько я разобрался в контекстной переменной {{ form }} уже содержатся все сообщения об ошибках. отдельно их обрабатываем конечно, если формируем поля формы вручную {{ form.username }} ...

    • @wstanley
      @wstanley  2 года назад

      Содержит, мы их с формы и показываем ```{{ form.errors.error }}``` в шаблоне

    • @ruslanways
      @ruslanways 2 года назад +1

      ​@@wstanley можно не доставать самим из формы. контекст при выводе {{form}} отрабатывает - сам все показывает.

    • @wstanley
      @wstanley  2 года назад +1

      Блин, точно, косяк))) А кстати мой вызов их и не отображает, спасибо за замечание, какие-то моменты упускаю из виду. По формам собирался плейлист сделать пока руки не дошли

  • @vegan_blade
    @vegan_blade Год назад +1

    Покажи как сделать личный кабинет с каким-то дополнительным функционалом который не доступен для неавторизированных пользователей (например добавление товаров в корзину или в избранное) буду очень признателен

    • @wstanley
      @wstanley  Год назад

      Именно в админке джанго?

    • @vegan_blade
      @vegan_blade Год назад +1

      @@wstanley чтобы админ мог добавлять товары разных категорий в каталог, удалять, менять цену через админ панель. А пользователь на главной странице мог эти товары добавлять в избранные и/или в корзину и в своем личном кабинете видеть список этих товаров

    • @wstanley
      @wstanley  Год назад

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

  • @АзамПополам
    @АзамПополам 2 года назад +1

    Здравствуйте, переадресация после логина происходила на user/login/, потому попробовал вместо LOGIN_REDIRECT_URL = '' написать LOGIN_REDIRECT_URL = 'blog:home', не пойму чего так, из-за того , что несколько приложений? Спасибо за видео

    • @wstanley
      @wstanley  2 года назад

      В логин_редирект_урл надо писать просто сам урл, захардкодить

    • @wstanley
      @wstanley  2 года назад

      Вот тут почитайте, можно именованый урл но через реверс походу. docs.djangoproject.com/en/4.0/ref/settings/#logout-redirect-url

  • @nomadicus77
    @nomadicus77 Год назад +1

    Извините опять я вас беспокою, у меня высвечивает ошибка перехода на домашнюю страницу Template does'not exists, но делаю абсолютно всё, как вы в чём может быть проблема?

    • @wstanley
      @wstanley  Год назад

      Доброе Утро! Ошибка у вас явная "Шаблон не найден" следовательно либо шаблона(templates/name_template.html) нету по указанному пути, либо указали не правильно путь либо имя к шаблону, это частая но довольно простая ошибка, стоит лишь внимательно посмотреть

  • @jk2noob511
    @jk2noob511 Год назад +1

    Не получается перейти к файлу contrib.auth.urls 6:13 комбинацией (alt + левая кнопка мыши). Выяснил, что не могу так сделать, если путь указан внутри кавычек (то есть зеленым цветом написан), в остальных случаях переход работает. Есть ли какой-нибудь альтернативный способ перейти к файлу ? Сама проблема возможно в версии PyCharm

    • @wstanley
      @wstanley  Год назад +1

      Добрый день, возможно пайчарм настроить надо, в сеттингах есть настройки django по поиску найдите и укажите там путь к настройкам и manage.py, еще стоит указать виртуальное окружение в настройках. Больше я в проекте ничего не настраиваю. Кстати может это зависит от версии пайчарма, посмотрите какая у вас версия

  • @ОлегЧеркашин-ш7с

    для создания пользователя есть так же базовый класс CreateView , и сейчас в

    • @wstanley
      @wstanley  Год назад +1

      CreateView это просто представление, отображающее форму для создания объекта, который наследуется от базового View и других классов. Для лучшего понимания в ролике использовал именно наследование от базового View. На основе базового View можно любое представление собрать. Если в form не написать actions то запрос уйдет по пути на котором находится страница, если же надо данные отправить на конкретный урл то actions необходимо прописать
      про actions - webref.ru/html/form/action
      про CreateView - docs.djangoproject.com/en/4.1/ref/class-based-views/generic-editing/#createview

    • @nomadicus77
      @nomadicus77 Год назад +2

      @@wstanley ответ достойнейший я потерял дар речи, можно поинтересоваться у вас сколько заняло у вас изучение Джанго, как учились ну книги там, документации и тдтп?

    • @wstanley
      @wstanley  Год назад +1

      @@nomadicus77 Я когда в питон пришел у меня уже было понимание как работают веб фреймворки, поэтому основные принципы я понимал, view, model тд Смотрел в основном открытые уроки в сети, на англ в том числе с субтитрами и без. Книг по джанго не читал, самое большое понимание работы данго дала документация, я ее просто постронично за обедом каждый день читал и применял на практике, документация очень хорошая. И самое гдавное это не бояться залазить в сам код джанги и разбираться как там все устроено, для этого стоит ООП изучить, опять же на ютюбе много видео по ООП питона

    • @nomadicus77
      @nomadicus77 Год назад

      @@wstanley спасибо ❤️

  • @standvik1159
    @standvik1159 2 года назад +1

    приветствую. спасибо за видео. для чего нужно использовать csrf_token в шаблонах?

    • @wstanley
      @wstanley  2 года назад +1

      Доброго времени суток, csrf токен защищает от подделок межсайтового запроса. Если удалить мидлевар CsrfViewMiddleware в settings то его можно не добавлять при запросах. Но лучше не удалять. docs.djangoproject.com/en/4.0/ref/csrf/#module-django.middleware.csrf

  • @MaksDark1
    @MaksDark1 2 года назад +1

    после добавления формы на страницу логин появляется эта ошибка:Reverse for 'login' not found. 'login' is not a valid view function or pattern name. помогите пожалуйста

    • @wstanley
      @wstanley  2 года назад

      Нету урла login надо его добавить, либо его джанго не видит

    • @MaksDark1
      @MaksDark1 2 года назад +1

      @@wstanley а где его добавить?

    • @wstanley
      @wstanley  2 года назад

      4:51 прописываю урлы ruclips.net/video/ke0f3bKl03w/видео.html&lc=UgxQUoMtWwDFxI7jRvZ4AaABAg

    • @MaksDark1
      @MaksDark1 2 года назад +1

      @@wstanley когда я прописываю урлы возникает эта ошибка: maximum recursion depth exceeded while calling a python object django

    • @wstanley
      @wstanley  2 года назад

      поздравляю ты создал бесконечную рекурсию и достиг ее предела))) Видимо ты импортируешь модули рекурсивно(но это не точно). Смотреть код надо. Если тебе оперативная помощь нужна то обратись в эту группу телеги t.me/pydjango тут всегда помогут

  • @ГузельЗаитова-й1ы
    @ГузельЗаитова-й1ы 2 года назад +1

    Подскажите пожалуйста, как добавить форму авторизации на главной странице, то есть не через ссылку, а при входе на сайт (главная страница) выходила форма авторизации

    • @wstanley
      @wstanley  2 года назад

      Доброго дня, Вам просто надо в представлении(view) которое рендерит главную страницу получить форму(form = AuthenticationForm()) авторизации и передать ее в шаблон в контексте context = {'form': form}, а в шаблоне соответственно обработать, как мы сделали это в login.html

    • @ГузельЗаитова-й1ы
      @ГузельЗаитова-й1ы 2 года назад +1

      @@wstanley А можно мне ссылку, где это можно посмотреть? Через accounts/login могу настроить, а через главную страницу index никак не могу. Опыта маловато, что-то не понимаю

    • @wstanley
      @wstanley  2 года назад

      @@ГузельЗаитова-й1ы Вот залил на гитхаб - github.com/djangouroki/form_login_in_home но если хочется чтобы помогли побыстрее, то лучше спрашивать в группе телеграмма t.me/pydjango

    • @ГузельЗаитова-й1ы
      @ГузельЗаитова-й1ы 2 года назад +1

      @@wstanley Спасибо большое! Вы мне реально помогли! Низкий поклон!

  • @ТуменТуванчап-ю8о
    @ТуменТуванчап-ю8о Год назад +2

    Как сделать переход в модуль, который делает автор на 6:15?

    • @wstanley
      @wstanley  Год назад

      пайчарм должен видеть твое виртуальное окружение, после чего наводишь мышкой с зажатым ctrl левый клик

    • @ТуменТуванчап-ю8о
      @ТуменТуванчап-ю8о Год назад

      @@wstanley Работает с функциями и классами, но слова, которые в кавычках отказывается воспринимать как отдельный модуль, наверное думает, что это обычная строка. Но все равно очень благодарен.

  • @evgeniiwjay6177
    @evgeniiwjay6177 2 года назад +1

    Привет, подскажи пожалуйста как плагин называется для пайчарма что ты нажимаешь на переменную и проваливаешься в него для просмотра свойств и тд?

    • @wstanley
      @wstanley  2 года назад +1

      Никаких плагинов не ставил, все стандартное. Проваливаюсь в функции, ctrl+левая кнопка мыши

    • @evgeniiwjay6177
      @evgeniiwjay6177 2 года назад +1

      @@wstanley спасибо!

  • @apelsintv9486
    @apelsintv9486 2 года назад +1

    вот я создал файл password_reset_form и там написал фому csrf токены и т.д но все равно он переодит по шаблону джанго а не по моему что делать?

    • @wstanley
      @wstanley  2 года назад

      Немного не понял что значит - "он переодит по шаблону джанго а не по моему" ?

    • @erikarabyan7205
      @erikarabyan7205 2 года назад

      @@wstanley у меня та же проблема, все сделано как в видео, password_reset переопределяет на джанговскую форму а не на html который мы создали.

  • @zTMXz
    @zTMXz Год назад +1

    после изменения на password1 все равно кидает ошибку: 'AnonymousUser' object has no attribute '_meta'
    не подскажешь что делать?

    • @zTMXz
      @zTMXz Год назад +1

      нашел ошибку, пропустил 1 букву в username))

    • @wstanley
      @wstanley  Год назад

      отлично! :):):)

  • @alcoholism322
    @alcoholism322 2 года назад +1

    Спасибо

  • @burgerist
    @burgerist 2 года назад +1

    а как изменить страницу /users/reset/MQ/set-password/

    • @wstanley
      @wstanley  2 года назад

      Доброго дня! Так же как и любую, создать урл, добавить view и определить шаблон

  • @olgakonovalova6092
    @olgakonovalova6092 2 года назад +1

    Добрый день! Спасибо за видео!
    У Вас в видео возникала ошибка "...object has no attribute '_meta'" после регистрации, которую Вы решили добавлением "1" к имени поля пароля. В моем случае добавление единицы не помогает. Как думаете, в чем может быть проблема?

    • @olgakonovalova6092
      @olgakonovalova6092 2 года назад +1

      Я решила проблему перенаправлением на страницу авторизации, логин в функции убрала =)

    • @wstanley
      @wstanley  2 года назад

      Добрый день! Если это на 22:45 то надо именно password1 так как именно под таким именем приходит пароль с формы. А что решили это очень хорошо, надеюсь решение нужное )))

    • @olgakonovalova6092
      @olgakonovalova6092 2 года назад +1

      @@wstanley я уже перерешала=))) посмотрела Ваше видео, где решается эта проблема. Теперь всё совсем ок! На самом деле большое спасибо! Хорошие видео. Мало достойного современного контента на эту тему.

    • @wstanley
      @wstanley  2 года назад

      Спасибо за приятный слова, рад что видео приносит пользу! Значит буду еще записывать, только позже)))

  • @alexandrbelotsky6301
    @alexandrbelotsky6301 Год назад

    можно вопрос, на 1:44 ты прописал [BASE_DIR / 'templates'], а я в учебнике смотрел, что надо писать [os.path.join(BASE_DIR, 'templates')] можно узнать в чем отличие

    • @wstanley
      @wstanley  Год назад +1

      С версии джанги 3.1 на сколько я помню в сеттингах используется pathlib для работы с путями и os там нету уже, посмотрите доку

    • @showrun4747
      @showrun4747 Год назад

      я тоже побуксовал на этом, показалось что папка templates внутри project, но оказалось надо на одном уровне. для новичка шаг вправо шаг влево - все, расстрел, час дебаггинга )))

  • @smokibits4365
    @smokibits4365 2 года назад +1

    Сходу подписка и лукас

  • @user-bs4hx7lz7d
    @user-bs4hx7lz7d Год назад +1

    Почему не выводит {{User}} в шаблоне?

    • @wstanley
      @wstanley  Год назад

      Привет! С маленькой буквы должно выводить

  • @vers1onjr763
    @vers1onjr763 Год назад +1

    Спасибо за видео, у меня проблема такова что когда выполняю миграцию у меня выходит ошибка Warning (staticfiles.W004), и указывает что нету папки static. Может быть проблема в том что я делал миграцию для другого приложения в этом же проекте, но users же тоже другое приложение, буду благодарен за помощь

    • @wstanley
      @wstanley  Год назад

      Непонятно, нужно больше конкретики. Напиши в группу в телеграмме, там сразу помогут. Ссылка в описании канала есть

    • @vers1onjr763
      @vers1onjr763 Год назад

      @@wstanley спасибо, я уже решил, почему то оно конфликтовало с уже созданной таблицей, не знаю можно ли два раза миграцию провести в одном проекте

  • @MrSunTrope
    @MrSunTrope Год назад

    А в чем может быть проблема, я создал так же шаблон к примеру password_reset_form, но его дажнго не подхватывает, использует дефолтный

    • @MrSunTrope
      @MrSunTrope Год назад

      Нашел для себя решение, просто в урлах копирую нужную вьюшку, вставляю в свои урлы, а прокижываю туда путь к своему шблону, но почему то имя должно быть другим, ни как по дефолту, тогда все норм

    • @wstanley
      @wstanley  Год назад

      Звучит разумно :)

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

      @@MrSunTrope а можно по подробнее. Что-то не могу разобраться.

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

      @@viktorbenda489 там есть способ проще, просто поставь свое приложение users к примеру на первом месте в installed apps

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

      @@MrSunTrope оПааа! круто, спасибо.

  • @RockstarAlexander
    @RockstarAlexander 2 года назад +1

    👍👍👍👍

  • @НургалиШаншаров

    Thank you bro!

  • @parshiviyrogsalad469
    @parshiviyrogsalad469 2 года назад +1

    Здравствуйте, столкнулся с проблемой переопределения html файла сброса пароля, всё написано точь-в-точь, как у вас, но помимо приложения users, так же имеется ещё два. Возможно это повлияло, но всё же проблема остаётся для меня загадкой, поделитесь, пожалуйста, мыслями по этому поводу, если такие имеются. Спасибо вам за видео!)

    • @wstanley
      @wstanley  2 года назад +1

      Доброго дня! Проверьте именоварие файлов, есть ли одинаковые имена. Либо правильно ли введено имя шаблона. Больше догадок нет, надо код смотреть :)

    • @FriskesTV
      @FriskesTV 2 года назад +1

      такая же проблема, не переопределяется password_reset_form.html, всё равно бросает на админку

    • @wstanley
      @wstanley  2 года назад

      Покажите код, залейте на гитхаб, посмотрю. Должно все работать. Что-то где-то упустили просто

    • @FriskesTV
      @FriskesTV 2 года назад +1

      @@wstanley да в общем то разобрался вроде, пришлось добавить path в urls.py
      path('password-reset/', auth_views.PasswordResetView.as_view(template_name='registration/override_password_reset_form.html'), name='password_reset'),
      С кастомным url и кастомным названием тимплейта, помогает для всех страниц: password_reset, password_reset_done, password_reset_confirm, password_reset_complete. Единственное не особо понятно почему для login не потребовалось производить данные операции.
      И да спасибо за видео, очень хорошо получается объяснять показывая от начала и до конца все действия.

    • @wstanley
      @wstanley  2 года назад

      @@FriskesTV потому что view Login реализован в джанге и мы просто подключили урл и положили шаблон там где он его и ищет и все заработало. Ваш комментарий попал почему то на проверку, только сегодня его увидел

  • @TheDoartLos
    @TheDoartLos Год назад +3

    по какой-то причине у меня не хотела мигрироваться модель с юзером в уже существующую бд, пришлось всю бд сносить и мигрировать с уже созданной моделью. кто будет повторять в уже существующем проекте учтите это.

    • @reltogames1813
      @reltogames1813 Год назад +1

      та же самая проблема была, спасибо огромное, что ты поделился как это исправить

    • @wstanley
      @wstanley  Год назад +1

      все правильно, бд при миграции привязывается к таблице юзера, соответственно если таблицу юзера поменять то миграции не пройдут, поэтому у джанги есть совет всегда переопределять таблицу юзера, чтобы в дальнейшем не попасть в такую ситуацию. Мне казалось я говорил об этом в каком-то уроке

    • @fit9009
      @fit9009 Год назад

      спасибо, весь день голову ломал

  • @nomadicus77
    @nomadicus77 Год назад +1

    Если бы еще бутстрап бахнул вообще было не 10/10 , а 11/10)

    • @wstanley
      @wstanley  Год назад

      Спасибо за отзыв! :)

    • @showrun4747
      @showrun4747 Год назад

      не надо бутстрап. не все хорошо знают как он работает и не все помнят названия стилей и их параметры это только запутает новичков. вообще ничего лишнего не надо, а то некоторые начинают уроки с установки виртуальной машины и настройки путти для тех кто на виндоус

  • @boradach565
    @boradach565 2 года назад +1

    Почему то не работает регистрация

    • @wstanley
      @wstanley  2 года назад

      Должно все работать, смотрите что-то упустили

  • @fit9009
    @fit9009 Год назад

    спасибо

  • @mett1692
    @mett1692 Год назад +1

    Миллион лайков! Помог исправить: Manager isn't available; 'auth.User' has been swapped for 'users.User'.
    Бесконечно благодарен!

  • @pirojok4523
    @pirojok4523 Год назад

    блин я незнаю почему, но на 11:57 возникает ошибка метод не работает
    path('register/', Register.view(), name='register'),
    ^^^^^^^^
    NameError: name 'Register' is not defined
    хотя в views все прописал

    • @MrSunTrope
      @MrSunTrope Год назад

      Ты класс из вьюшек не импортировал скорее всего

    • @pirojok4523
      @pirojok4523 Год назад

      @@MrSunTrope да не, я в этой же папке в views создал class Registet

    • @wstanley
      @wstanley  Год назад

      Вероятнее всего что-то с импортом, раз класс не видит он

  • @-top4ik196
    @-top4ik196 2 года назад +1

    ошибка при миграции выходит почему

    • @wstanley
      @wstanley  2 года назад

      Доброго дня! какая ошибка?

    • @-top4ik196
      @-top4ik196 2 года назад +1

      @@wstanley скажи пожалуйста ТГ я тебе скину ошибку просто незнаю как тут сказать

    • @wstanley
      @wstanley  2 года назад

      Пиши вопросы по джанге в эту группу t.me/pydjango там всегда помогут, я тоже там есть и помогаю когда есть время. Не всегда я у ПК

    • @-top4ik196
      @-top4ik196 2 года назад

      @@wstanley хорошо спасибо большое

  • @СенчукНазар
    @СенчукНазар Год назад +1

    Как ты так быстро пишешь {%%}?

    • @wstanley
      @wstanley  Год назад +1

      Пишу { потом % остальное пайчарм сам добавляет)))

  • @ivankurban669
    @ivankurban669 2 года назад +1

    Я начинающий, 12:04 зачем нам создавать url для регистрации, если он есть в стандартоном списке (последняя строка)?
    admin/
    [name='home']
    users/ login/ [name='login']
    users/ logout/ [name='logout']
    users/ password_change/ [name='password_change']
    users/ password_change/done/ [name='password_change_done']
    users/ password_reset/ [name='password_reset']
    users/ password_reset/done/ [name='password_reset_done']
    users/ reset/// [name='password_reset_confirm']
    users/ reset/done/ [name='password_reset_complete']
    users/ register/ [name='register']

    • @wstanley
      @wstanley  2 года назад

      Доброе утро! Нет такого урла в джанго, по крайней мере я не вижу или покажите где вы его нашли? github.com/django/django/blob/main/django/contrib/auth/urls.py тот список что вы показываете уже видимо расширен урлом регистрации users/ register/ [name='register'] выводится он на странице 404

    • @ivankurban669
      @ivankurban669 2 года назад +1

      @@wstanley Т.е. ещё не реализовано, но на страницу 404 они добавили как пример. Спасибо.

    • @wstanley
      @wstanley  2 года назад

      Нет, если он выводится значит уже реализован, но в пустой джанге его нет. Значит вы его добавили :)

  • @r0def
    @r0def Год назад +1

    Очень медленно я бы ускорил процесс выполнения

    • @wstanley
      @wstanley  Год назад

      Что именно медленно?

  • @apelsintv9486
    @apelsintv9486 2 года назад +1

    0:59 что нажали то бы импортировать библеотеку

    • @wstanley
      @wstanley  2 года назад

      Alt + enter и выбор импортировать в меню

    • @apelsintv9486
      @apelsintv9486 2 года назад +1

      @@wstanley ноу меня ничего не входит когда нажимаю на Alt+ Enter

    • @wstanley
      @wstanley  2 года назад

      Надо курсор установить на название и нажать, должно выпасть меню, в этом меню есть все пункты того что можно сделать с выбранным(куда установлен курсор) элементом.
      Ссылки:
      www.jetbrains.com/idea/guide/tips/alt-enter/
      ruclips.net/video/caUTeTSzG5M/видео.html

  • @ВіталікФедитник

    )

  • @alcoholism322
    @alcoholism322 2 года назад +2

    'django.contrib.auth.urls' как выполнить переход в этот файл? если зажать ктрл не выделяет слово для перехода. pycharm professional

    • @burgerist
      @burgerist 2 года назад

      Вы решили эту проблему. В чем причина?

    • @wstanley
      @wstanley  2 года назад

      Доброго дня! Думаю пайчарм не видит у вас виртуальное окружение, его надо насстроить Settings -> Project -> python interpreter. Добавить и указать где брать библиотеки. Я дополнительного ничего не настраивал в пайчарме

    • @CuteAnimalsInShorts
      @CuteAnimalsInShorts Год назад

      удалось найти решение?

  • @CuteAnimalsInShorts
    @CuteAnimalsInShorts Год назад +1

    django.contrib.auth.urls, не видно urls по ссылке users, к сожалению :(
    перейти в папку через ctrl тоже не получается. можешь код можно как-то иначе записать?

    • @wstanley
      @wstanley  Год назад

      В IDE интерпретатор укажи и по ctrl будет переходить, не понял про записать код((

  • @ВладимирКиянов-к8г
    @ВладимирКиянов-к8г 2 года назад +1

    Блин у меня почему то не видит django.contrib.auth.urls, нифига в браузере не показывает урлы

    • @wstanley
      @wstanley  2 года назад

      Доброго дня! Может ошибку допустил синтаксическую? Должен видеть. Виртуальное окружение в ИДЕ подключил если, он должен сам путь подставить. Спроси в группе в телеге t.me/pydjango там помогут быстрее

    • @burgerist
      @burgerist 2 года назад

      возможно вы не дописали - from django.urls import path, include
      какие ошибки показывает?

  • @fsgheh5464
    @fsgheh5464 2 года назад +1

    Привет,я новичок в выб разработке,и меня давно мучает такой вопрос,допустим я хочу создать такой сайт как яндекс кью
    И когда ты заходишь на сайт,у них показывают разные темы,и там внизу стоит кнопка ответить,и когда ты нажимаешь на кнопку и там открывается форма ответа,когда ты комментируешь это сайт понимает и сохраняет это к тому обновлении которому ты ответил
    Форму авторизации понять то можно,там если максимум два и три поля, и это отслеживать очень легко
    Например input login и пароль
    Но я не понимаю как в крупных сайтах отслеживают огромные действия
    Или они все действие проверяют с if и else
    Например,если понять какой именно запрос был отправлен из форумы,я пока новичок и делаю так если ровно delete значит надо удалить,а если create надо создать

    • @wstanley
      @wstanley  2 года назад

      Привет, передают номер поста в скрытом поле например, или ид поста в урл запроса передают. По разному делают. Когда опыта станет больше поймешь

    • @fsgheh5464
      @fsgheh5464 2 года назад +1

      @@wstanley Спасибо

  • @maximboiko3145
    @maximboiko3145 Год назад

    Вообще ничего не ясно- галопом по европам. Сам что то пишет быстро и говорит что он печатает.

    • @V.D.
      @V.D. Год назад

      Если ты в курсе работы джанги, то всё понятно. Другое дело, что тому, кто в курсе, это не очень интересно.
      Короче говоря - видео не для новичка

  • @1Chitus
    @1Chitus Год назад +2

    спасибо за видео очень полезно

    • @wstanley
      @wstanley  Год назад

      Спасибо за отзыв!

  • @артемчелуснов-с7б
    @артемчелуснов-с7б Год назад +1

    создал так же шаблон к примеру password_reset_form, но его дажнго не подхватывает, использует дефолтный, в чем может быть проблема?

    • @wstanley
      @wstanley  Год назад

      Прописать в классе View template_name="путь к шаблону", либо в сетингах подключить шаблоны

    • @Сашка-ю5ю
      @Сашка-ю5ю Год назад

      Убедитесь в том что кастомный html файл точно лежит в папке templates/registration