#19. Регистрация пользователей на сайте | Django уроки

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ก.พ. 2025

ความคิดเห็น • 99

  • @koesh4696
    @koesh4696 3 ปีที่แล้ว +5

    Как повезло мне найти этот канал!

  • @lookyne
    @lookyne 3 ปีที่แล้ว +3

    Как же я вам благодарен! Словами точно не описать!

  • @friend1cat
    @friend1cat 4 ปีที่แล้ว +9

    Спасибо, Сергей!

  • @Максим-т5ш8и
    @Максим-т5ш8и 2 ปีที่แล้ว +1

    Сергей, спасибо! Скоро финал, стараюсь дойти до него не только по Вашим видео, но и читаю документацию + делаю свой уже второй проект, что-то типа интернет-магазина. Без JS ибо не умею, но как есть.

  • @my_way_to_heaven
    @my_way_to_heaven 3 ปีที่แล้ว +5

    Лайк. Как обычно супер полезный и понятный урок. Спасибо автору!

  • @siarheiulas6969
    @siarheiulas6969 ปีที่แล้ว +1

    Классная подача материала! Очередной раз спасибо!

  • @alex_satan
    @alex_satan 2 ปีที่แล้ว +1

    🔥🔥🔥💻🤓🤓🤓
    Все как всегда! Качество на высшем уровне)))

  • @milenko1642
    @milenko1642 2 ปีที่แล้ว +1

    Лучше уроки по Dgango 👍

  • @annapr_tr4799
    @annapr_tr4799 2 ปีที่แล้ว +1

    Kak vsegda yrok syper !!!Spasibo bolshoe !!!!

  • @donfedor007
    @donfedor007 4 ปีที่แล้ว +3

    Спасибо за урок! Очень интересная тема!

  • @B0JIKA
    @B0JIKA 2 ปีที่แล้ว +4

    10:36
    можно инициализатор поправить
    def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    for field in self.fields:
    self.fields[field].widget.attrs['class'] = 'form-control'

  • @bestmusic86
    @bestmusic86 2 ปีที่แล้ว +1

    по больше таких видеоуроков

  • @pilina_
    @pilina_ 2 ปีที่แล้ว +1

    Спасибо за видео!!

  • @alucardv8551
    @alucardv8551 3 ปีที่แล้ว +20

    До 3:12 - Добавление ссылки на форму регистрации и создание URL- схемы.
    3:12 - 5:13 - создание представления для регистрации
    5:13 - 6:08 - Создание шаблона register.html для отображения формы регистрации на странице.
    6:40 - 12:20 - улучшение внешнего вида формы - создание соотвествующего класса в forms.py и цикла в html-шаблоне.
    12:20 - 13:37 - добавление нового поля в форму.
    13:50 - Документация о расширении модели User, с подробными примерами

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +3

      Спасибо, добавил в описание!

    • @alucardv8551
      @alucardv8551 3 ปีที่แล้ว +5

      @@selfedu_rus Я это сделал в учебных целях, но очень неожиданно и приятно, что вы обратили внимание)

  • @dmitryzagorevskiy507
    @dmitryzagorevskiy507 3 ปีที่แล้ว +16

    Чем ближе к окончанию курса, тем меньше просмотров. Потому, что народ выдыхается ( . А после курса надо ещё как минимум 1 pet проект сделать. Тогда будет какое-то базовое понимание Django.

    • @philippnazarenko7090
      @philippnazarenko7090 2 ปีที่แล้ว +1

      что значит "pet проек"?

    • @maknoname
      @maknoname 2 ปีที่แล้ว

      @@philippnazarenko7090 проект для практики или для закрепления материала. Это может быть просто твой личный проект который ты делаешь в свободное время.

  • @frozen1093
    @frozen1093 3 ปีที่แล้ว +9

    Спасибо за урок! Кст, можно было еще использовать Crispy Forms, там пару строк добавить, а выглядит намного красивее.

  • @bestmusic86
    @bestmusic86 2 ปีที่แล้ว +1

    Спасибо большое помогло очень

  • @bestmusic86
    @bestmusic86 2 ปีที่แล้ว +1

    как раз этих знаний не хватало

  • @БогданФещенко-я6й
    @БогданФещенко-я6й 2 ปีที่แล้ว +1

    Thank you, sir!

  • @andrexxelles
    @andrexxelles 2 ปีที่แล้ว +4

    9:58 Почему же они не работают ? В UserCreationForm, от которой мы наследуемся, поля как password1 и password2 указаны явно ( декларотивно), привожу код из UserCreationForm :
    class UserCreationForm(forms.ModelForm):
    ......
    password1 = forms.CharField(
    label=_("Password"),
    strip=False,
    widget=forms.PasswordInput(attrs={'autocomplete': 'new-password'}),
    help_text=password_validation.password_validators_help_text_html(),
    )
    password2 = forms.CharField(
    label=_("Password confirmation"),
    widget=forms.PasswordInput(attrs={'autocomplete': 'new-password'}),
    strip=False,
    help_text=_("Enter the same password as before, for verification."),
    )
    И вот, если поля в форме джанго указаны явно - то все прочие поля формы, наподобие widgets для них игнорируются :)

  • @Дмитрий-з3ц7й
    @Дмитрий-з3ц7й ปีที่แล้ว +3

    Здравсвуйте, на 6:30 минуте вылазит ошибка RegisterUser is missing a QuerySet. Define RegisterUser.model, RegisterUser.queryset, or override RegisterUser.get_queryset().
    при таком классе отображения
    class RegisterUser(DataMixin, CreateView):
    from_class = UserCreationForm
    template_name = 'firstapp/register.html'
    success_url = reverse_lazy('login')
    def get_context_data(self, *, object_list=None, **kwargs):
    context = super().get_context_data(**kwargs)
    c_def = self.get_user_content(title="Регистация")
    return context | c_def
    если убрать context то пропадает проблема, но форма не отображается. Помогите пожалуйста.

    • @SoTer771
      @SoTer771 ปีที่แล้ว +2

      from_class поправь form_class

    • @Дмитрий-з3ц7й
      @Дмитрий-з3ц7й ปีที่แล้ว

      @@SoTer771 спасибо тебе огромное, часа 3 убил на это

  • @sainco3036
    @sainco3036 4 ปีที่แล้ว +3

    Спасибо.

  • @vor6758
    @vor6758 ปีที่แล้ว +1

    Спасибо за видео)
    А какой метод отвечает за вставку новой записи пользователя в бд?

  • @rostislavmalyshev1775
    @rostislavmalyshev1775 3 ปีที่แล้ว +1

    Благодарю!

  • @ВиталийКалиниченко-х8э
    @ВиталийКалиниченко-х8э 3 ปีที่แล้ว +1

    Спасибо!

  • @alex_satan
    @alex_satan 2 ปีที่แล้ว

    Сергей, такой вопрос:
    Сделал все абсолютно так же, как на видео. Но при попытке регистрации ловлю ошибку 403: "Ошибка проверки CSRF. Запрос отклонён.". В консоли при попытке регистрации:
    [08/Jun/2022 18:16:06] "GET / HTTP/1.1" 200 6177
    [08/Jun/2022 18:16:13] "GET /register/ HTTP/1.1" 200 3641
    Forbidden (CSRF token missing.): /register/
    [08/Jun/2022 18:16:38] "POST /register/ HTTP/1.1" 403 2548.
    Т.е. CSRF токены не совпадают...

    • @alex_satan
      @alex_satan 2 ปีที่แล้ว +1

      Всему виной была ошибка в шаблоне register.html:
      Было:

  • @ches_ter6842
    @ches_ter6842 2 ปีที่แล้ว +6

    Добрый день! Есть ли возможность отдельно сделать видео с регистрацией путем отправки смс? Или быть может есть уже такой гайд на русском? Думаю многим было бы интересно. Спасибо!

    • @DimatronLogachev
      @DimatronLogachev 2 ปีที่แล้ว

      Стековерфлов в помощь

  • @РоманМомотов-ш9й
    @РоманМомотов-ш9й ปีที่แล้ว +1

    Здравствуйте, подскажите пожалуйста, что нужно изучить для реализации возможности редактировать комментарии к посту не переходя на страницу конкретного комментария с отдельным URL адресом, а редактировать комментарий непосредственно на странице поста, к которому был оставлен этот коммент?
    Т.е. функционал комментариев как в ВК или у того же TH-cam

  • @LeeNick1976
    @LeeNick1976 2 ปีที่แล้ว +1

    👍

  • @bestmusic86
    @bestmusic86 2 ปีที่แล้ว +1

    Не рассказали про очень важную часть регистрации пользователей - уникальность
    Очень хочется дополнение к этому уроку про уникальность полей, в особенности поля email,
    Сейчас мы все размещаем в приложении women. А если у меня несколько приложений, а регистрация единая (например добавлю еще форум) где размещать классы регистрации и все, что с ними связано? очень крутой видеоурок

    • @АзамПополам
      @АзамПополам 2 ปีที่แล้ว

      Я все связанное с регистрацией и аутентификацией размещаю в прил. User

  • @РоманЗорин-о2г
    @РоманЗорин-о2г 2 ปีที่แล้ว +1

    Сейчас мы все размещаем в приложении women. А если у меня несколько приложений, а регистрация единая (например добавлю еще форум) где размещать классы регистрации и все, что с ними связано?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

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

    • @РоманЗорин-о2г
      @РоманЗорин-о2г 2 ปีที่แล้ว

      @@selfedu_rus в том то и проблема. Нет у меня усмотрения. Я совета спросил)

    • @showrun4747
      @showrun4747 ปีที่แล้ว

      жизнь одна -живи как хочешь )@@РоманЗорин-о2г

  • @ЕвгенийАюпов-в9с
    @ЕвгенийАюпов-в9с 2 ปีที่แล้ว +2

    Уроки очень познавательны и применимы в жизни, жаль автор не оставил информации куда копеечку можно скинуть

    • @Alex-lg9tn
      @Alex-lg9tn 2 ปีที่แล้ว

      готова отдать все свои деньги, которых у меня нет за прекрасный материал

    • @Gggfftyt
      @Gggfftyt 2 ปีที่แล้ว

      Yoomoney-кошелек: 410017009233821

  • @threehundredbucks3212
    @threehundredbucks3212 3 ปีที่แล้ว +2

    Вопрос: Когда в форме регистрации пользователя в Meta прописываю поля (fields) они у меня по какой-то причине сортируются в алфавитном порядке
    То есть я передаю как: login, password1, password2, а выводит password2, login, password1

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +1

      Все верно, там вроде сортировка по ключу по умолчанию включается. Для изменения сортировки ordering = ['-pub_date', 'author'], подробнее: django.fun/docs/django/ru/3.2/ref/models/options/#ordering

    • @ДанилЧерепухин
      @ДанилЧерепухин 3 ปีที่แล้ว

      @@selfedu_rus у меня по какой-то неведомой причине последнее поле "Повтор пароля" не берёт стиль форматирования как остальные три поля. Не пойму,что не так.

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว

      @@ДанилЧерепухин может браузер страницу из кэша берет?

    • @ДанилЧерепухин
      @ДанилЧерепухин 3 ปีที่แล้ว

      @@selfedu_rus думал об этом, кеш браузера очищается при выходе.

    • @ДанилЧерепухин
      @ДанилЧерепухин 3 ปีที่แล้ว

      @@selfedu_rus в итоге забавно: если label состоит из двух слов (как "Повтор пароля") форматирование разъезжается на этом поле. Если из одного слова "Повтор" - то форматирование есть, как и у других полей:)

  • @clearsky9174
    @clearsky9174 ปีที่แล้ว +1

    если у кого-то длинный лейбл "Повтор пароля" сдвигает поле инпута, это может быть из-за разрешения вашего старого ноутбука. Тут нужен ноутбук с full HD

    • @showrun4747
      @showrun4747 ปีที่แล้ว

      это надо решать не так. многие смотрят с телефона и регистрация должна и на телефоне выглядеть нормально

    • @clearsky9174
      @clearsky9174 ปีที่แล้ว

      @@showrun4747 это и не решение проблемы, а заметка на случай если кому интересно, почему так. Кстати, есть апдейт по этой проблеме - всё дело в браузере Mozilla Firefox на Linux, в другом браузере уже такой проблемы не будет. А решение этой проблемы - дело фронтенда

  • @listum
    @listum 3 ปีที่แล้ว +2

    File "/mnt/c/Users/Listum/Desktop/django4president_RE/django4president_RE/urls.py", line 24, in
    path('register/', RegisterUser.as_view()),
    NameError: name 'RegisterUser' is not defined
    Что делать, не чинится

    • @stamina1097
      @stamina1097 2 ปีที่แล้ว

      Вам надо импортировать этот класс в urls.py: from имя_приложения.views import RegisterUser

  • @Radag0nn563
    @Radag0nn563 2 ปีที่แล้ว +3

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

    • @gaunter_o_d1mm
      @gaunter_o_d1mm 2 ปีที่แล้ว

      В модели для нужного тебе поля прописываешь unique=True

  • @eltimccc
    @eltimccc 2 ปีที่แล้ว +1

    Мне пишет, что не найден RegisterUser... что делать? пишу в урл from views import RegisterUser, не работает

    • @stamina1097
      @stamina1097 2 ปีที่แล้ว

      попробуй так: from имя_приложения.views import RegisterUser

  • @negan2275
    @negan2275 2 ปีที่แล้ว +1

    как мне использовать собственную форму, а не наследоваться в форме от класса формы из django. Например как мне сделать в веб приложении форму анкеты, чтобы user просто вводил данные, далее совершалась проверка на валидность данных по типу метода is_valid, и сейв в базу данных по типу метода save

    • @freesx1306
      @freesx1306 ปีที่แล้ว

      простой вариант это сделать html форму, обработать данные POST запроса и всё

  • @Anton-eu2qx
    @Anton-eu2qx 3 ปีที่แล้ว +2

    У меня не отображается поле Email. ошибок нет, даже копи-пастил эти строки с сайта. В чем может быть причина?

    • @FarenRulen
      @FarenRulen 3 ปีที่แล้ว +3

      Привет. Не знаю, исправил ли ты уже свою ошибку или нет, я все равно напишу решение. Во-первых, в файле views.py в классе представления который отвечает за регистртрацию пользователей, form_class ссылается на твою собственную форму которую ты создал в файле forms.py. Во вторых, удали импорт UserCreationForm. Он тут лишний.

    • @alekseyveld7559
      @alekseyveld7559 3 ปีที่แล้ว

      @@FarenRulen Спасибо!

    • @ИванСиничкин-о1л
      @ИванСиничкин-о1л 2 ปีที่แล้ว

      @@FarenRulen можно более подробное пояснение?
      "Во-первых, в файле views.py в классе представления который отвечает за регистртрацию пользователей, form_class ссылается на твою собственную форму которую ты создал в файле forms.py."
      А должен на что ссылаться? И как это правильно реализовать?
      upd: ответ на этот вопрос можно найти в следующем видео, когда будет создаваться новая форма.

  • @thelustsamurai4628
    @thelustsamurai4628 2 ปีที่แล้ว +1

    А как перейти на этот сайт? прост я вообще полный 0 в программировании

    • @DimatronLogachev
      @DimatronLogachev 2 ปีที่แล้ว

      Чел, а ты вообще что тут тогда забыл? :D

    • @thelustsamurai4628
      @thelustsamurai4628 2 ปีที่แล้ว +1

      @@DimatronLogachev случайно поступил на программиста, но остался последний курс😂 по исрпо дали задание сделать сайт на джанго и тут наткнулся на этот видос, а я хз че да как

    • @DimatronLogachev
      @DimatronLogachev 2 ปีที่แล้ว +1

      @@thelustsamurai4628 а я на 1 курсе, занимаюсь самообучением

    • @thelustsamurai4628
      @thelustsamurai4628 2 ปีที่แล้ว

      @@DimatronLogachev молодец

  • @КириллСмаковенко
    @КириллСмаковенко 4 ปีที่แล้ว +2

    А почему у тебя пароль автоматически захешировался? Или я чёт провтыкал?

    • @selfedu_rus
      @selfedu_rus  4 ปีที่แล้ว +2

      Это делается автоматом на уровне Django, специально хэшировать не нужно - стандартная операция.

    • @КириллСмаковенко
      @КириллСмаковенко 4 ปีที่แล้ว

      Спасибо!)

  • @limirikys
    @limirikys 3 ปีที่แล้ว

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

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +2

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

    • @DELTA85rus
      @DELTA85rus 3 ปีที่แล้ว

      Автор для этого ссылку на документацию оставил в закрепе, прям конкретно на этот вопрос.

  • @AdnessC
    @AdnessC 3 ปีที่แล้ว

    выходит ошибка name 'reverse_lazy' is not defined
    и без понятия что с этим делать

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว

      либо версия Django не позволяет, либо нужно ее вначале импортировать from django.urls import reverse_lazy

  • @Artem-le7rz
    @Artem-le7rz 3 ปีที่แล้ว

    Datamixin объясни пожалуйста от куда ты его берешь ?

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +1

      Мы его сами прописали на одном из занятий. См. исходники, ссылка под видео.

    • @fit9009
      @fit9009 ปีที่แล้ว

      да#н нах ты резину тянешь, написал бы от куда это@@selfedu_rus

  • @sashasemin6044
    @sashasemin6044 3 ปีที่แล้ว

    Как подключить файл forms к файлу register?

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +1

      Если в одном пакете, то так должно работать:
      from .forms import *

  • @mrkhloud
    @mrkhloud 3 ปีที่แล้ว +1

    Кул

  • @about_python
    @about_python ปีที่แล้ว

    10:03 автор забыл добавить в forms вот такой импорт: from django.contrib.auth.models import User , не понимаю как у него все работает

    • @You_big_father
      @You_big_father ปีที่แล้ว

      Его импортировал на 7.26

  • @MrMohindR
    @MrMohindR ปีที่แล้ว

    django.template.exceptions.TemplateSyntaxError: Invalid block tag on line 12: 'end
    block'. Did you forget to register or load this tag?
    не могу понять, почему ошибка вылазит

    • @MrMohindR
      @MrMohindR ปีที่แล้ว +1

      всё, разобрался, ппц :)

  • @userqh67vey6
    @userqh67vey6 2 ปีที่แล้ว +1

    У меня почему-то поля формы регистрации отображаются в рандомном порядке после каждого перезапуска сервера. То email первый, то пароль2. Но новые юзеры создаются успешно.
    Выяснил, модель User импортнул отсюда: django.contrib.auth.forms вместо django.contrib.auth.models
    Лайк за видос.

  • @maximboiko3145
    @maximboiko3145 ปีที่แล้ว +1

    курс - барахло. если уж откровенно говорить.

    • @showrun4747
      @showrun4747 ปีที่แล้ว +1

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