#8. Формирование URL-адресов в шаблонах | Django уроки

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

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

  • @MrTemperator
    @MrTemperator Год назад +25

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

  • @master-Dmitriy
    @master-Dmitriy 3 года назад +51

    Не перестаю восхищаться этими уроками, их запросто можно было бы назвать "django для самых маленьких" потому что так понятно и доходчиво объяснено. Искренне благодарю Вас за ваш труд.

  • @user-buser_eto_ja
    @user-buser_eto_ja 2 года назад +10

    Учусь в Нетологии , честно тут доступнее объясняют, регулярно смотрю параллельно со своими занятиями. Огромная человеческая благодарность автору курса!

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

      соболезную , сам учился там отдал 115к , ТП не отвечает, налог вернуть не могу, закончил обучение 1.5 месяца назад, и до сих пор мой диплом не напечатали , жду((( теперь понял что без бумажки ты ка___шка работает только для тех кто эти бумаги печатает.
      Я думал в этом году сходить с этой докой до универов возьмут ли меня на 3 курс с ними...а нет , ждём переждём.

  • @ТимурГорилецкий
    @ТимурГорилецкий 2 года назад +14

    Очень обидно, что миллионы просмотров набирают всякие "ТикТокеры" льющие себе молоко на голову... и т.д. Вот такие уроки у таких авторов должны быть миллионные просмотры! Автору огромное спасибо! Лучшего объяснения материала в просторах интернета ещё не встречал. Палец вверх под каждым видео! И подписка само-собой!

    • @ВладимирКоваленко-ъ6о
      @ВладимирКоваленко-ъ6о 2 года назад +10

      не, не обидно, меньше конкуренция)

    • @МистерШмистер
      @МистерШмистер Год назад +1

      @@ВладимирКоваленко-ъ6о Хороший специалист конкуренции не боится )

    • @КоляБереговой-с4и
      @КоляБереговой-с4и Год назад +1

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

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

    Я уже почти год занимаюсь разработкой на python\django, но было очень полезно пересмотреть уроки и структурировать знания. Спасибо за потраченное время и ваш труд!

    • @РоманТорунов-ъ1р
      @РоманТорунов-ъ1р 2 года назад

      Здравствуйте. А как нашли первую работу и что в основном от Вам требовалось, как от начинающего разработчка?

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

      @@РоманТорунов-ъ1р я давно в разработке

  • @ГошаВиктор-п1и
    @ГошаВиктор-п1и Год назад +2

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

  • @ЕгорШишкин-г8ь
    @ЕгорШишкин-г8ь Год назад +4

    Спасибо огромное Вам, Сергей, Вы делаете большое и доброе дело! Ещё раз человеческое спасибо!

  • @shpakvadym
    @shpakvadym 4 года назад +8

    Автор очень интересно и доступно обьясняет материал. Спасибо. Жду продолжения.

  • @alucardv8551
    @alucardv8551 3 года назад +18

    0:00 - использование тега URL для формирования маршрутов к URL-схемам
    3:42 - Создание страниц и ссылок для пунктов меню хедера
    7:50 - Создание динамических ссылок на уровне шаблонов
    11:06 - Формирование динамических URL-адресов, связанных с БД, с помощью метода get_absolute_url

    • @selfedu_rus
      @selfedu_rus  3 года назад +4

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

  • @Максим-т5ш8и
    @Максим-т5ш8и 2 года назад +1

    Класс, ещё раз спасибо за уроки. Стеаринов стараюсь осваивать постепенно, так лучше укладывается в голове. Ну и ещё пару источников смотрю)

  • @Национал-предатель
    @Национал-предатель 3 года назад +2

    Фух, оказалось самой тяжкой темой для меня. Отличный ролик, как всегда спасибо. Умудрился сделать чтобы внутрь новой страницы передавалась вся информация объекта через get(pk=id) теперь внутри страницы есть полноценный html с которым можно работать. Спасибо за урок)

  • @friend1cat
    @friend1cat 4 года назад +7

    Спасибо, как всегда доступно и последовательно.

  • @ahil7800
    @ahil7800 4 года назад +3

    Это лучший курс по Джанго. Очень понятно, очень подробно. Спасибище огромное!!! Жаль что в этом видео не нашёл как загрузить статический файл картинку. "Будем искать"

    • @selfedu_rus
      @selfedu_rus  4 года назад

      Это будет в последующих занятиях.

    • @ahil7800
      @ahil7800 4 года назад +1

      @@selfedu_rus Очень-очень жду))

    • @ahil7800
      @ahil7800 4 года назад

      @@selfedu_rus Круто, а в каком плейлисте?

    • @selfedu_rus
      @selfedu_rus  4 года назад

      @@ahil7800 в этом же, через некоторое время

  • @RelaxLofiSonataOneMusic
    @RelaxLofiSonataOneMusic 3 года назад +8

    Не давно смотрел уроки на другом канале и они мне нравились,но потом случайно наткнулся на ваши видео и я понял, что прошлые видео и рядом не стояли с вашими. Вы пожалуй лучше всех обьясняите эту тему и другие наверное тоже( пока, что успел глянуть только уроки по jinji2 и по sql, мне они понравились!)
    Продолжайте в том же духе :3

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

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

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

    Комментарий для поддержки канала 🖐️😉

  • @donfedor007
    @donfedor007 4 года назад +2

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

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

    Очень доходчиво рассказываете. Огромное спасибо.

  • @Timur_play_time
    @Timur_play_time 3 года назад +1

    Спасибо за урок, спасибо, что продолжаете.

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

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

  • @yarik83men51
    @yarik83men51 3 года назад +3

    Лаконично, понятно, доступно. Хотелось бы продолжения тем по Django.

  • @exe88cution
    @exe88cution 3 года назад +1

    Как всегда на высоте, спасибо большое!

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

    Друзья, если возникла проблема на данном этапе: 14:08
    Проверьте себя с данным параметром в файле index.html: href="{{ p.get_absolute_url }}"
    Там НЕ должны оставаться знаки "%", сам не заметил данной ошибки и потратил на это минут 20)

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

      это есть в видео

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

      Большое спасибо!

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

    Для тех, кто не может понять откуда взялась ''p'
    Все просто. Выше идет перебор в цикле фор - {% for p in posts %}

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

      Не поверишь, но именно это было единственным , что я недопонял в этом уроке и твой коммент все разрешил, красава, жму руку🤝

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

    Благодарю за материал. ! Очень полезная информация.

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

    Spasibo bolshoe za video!!!!!!!!

  • @АлександрЛобанов-о2у

    Спасибо автору!

  • @ДимаЧаплинский-г8э
    @ДимаЧаплинский-г8э 2 года назад +1

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

  • @КириллАль-Шаер-х2ю

    Просто лучший! Спасибо!

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

    Супер пупер* урок!))☺️

  • @kazykan
    @kazykan 3 года назад +1

    Большое спасибо, все понятно! 👍🏼

  • @badgrjw
    @badgrjw 3 года назад +1

    "Не лучший путь" 1:54 отличный каламбур

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

    Спасибо!

  • @rostislavmalyshev1775
    @rostislavmalyshev1775 4 года назад +1

    Отличное видео!

  • @AdAd-lv8eb
    @AdAd-lv8eb 3 года назад +1

    You are cool bro

  • @sarutor1234
    @sarutor1234 4 года назад +3

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

  • @АлексейКомаров-ф8к

    Получается, что для создания каждой ссылки на странице django будет обращаться к базе данных (выполняя метод get_absolute_url)? И если таких ссылок на странице 100 штук, то это 100 обращений. Используя обычный url в шаблоне, мы можем предварительно одним запросом (или не одним?) получить всю информацию из базы данных и передать ее в шаблон. В таком случае нагрузка на бд будет снижена, насколько я понимаю. Почему тогда метод get_absolute_url рекомендуется к использования самой документацией django?

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

    👏👍

  • @yarik83men51
    @yarik83men51 4 года назад

    Спасибо

  • @dmitryzagorevskiy507
    @dmitryzagorevskiy507 3 года назад +5

    Сергей, сколько чел. часов уходить на создание 1 часа видео с учётом всех дополнительных материалов которые вы предоставляете? Я думаю, около 5 часов. Благодарю!

    • @selfedu_rus
      @selfedu_rus  3 года назад +6

      да, около 4-5 часов

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

    Немного не понятно, почему вызвали именно функцию reverse для get_absolute_url.

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

      Да, то же не понял

  • @АртурХасиев-ж8с
    @АртурХасиев-ж8с 2 года назад +1

    я что-то запутался. а откуда в блоке mainmenu при переборе списка menu взялся m.title еще до словаря, или я упускаю что-то, ведь страница запускается, слишком много title

  • @АртурХасиев-ж8с
    @АртурХасиев-ж8с 2 года назад +2

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

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

    Спасибо за подробный разбор всех деталей! И вот вопрос возник: а чем отличается строка return render(request, 'women/about.html', {'menu': menu, 'title': 'О сайте'}) в функции about от строки return HttpResponse("Добавлние статьи") в функции addpage?
    Они на сайте ведь вроде одинаково работают

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

      все, дальше поняла в чем отличие. Еще раз спасибо большое!

  • @ibrahimoglu
    @ibrahimoglu 3 года назад +1

    👍

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

    Подскажите, пожалуйста, в чем ошибка? Как только я в тег добавляю {% m.url_name %} происходит ошибка
    Invalid block tag on line 20: 'm.url_name', expected 'elif', 'else' or 'endif'. Did you forget to register or load this tag?

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

      Включил видео с начала и разобрался! Нужно писать не {% m.url_name %},
      а {% url m.url_name %}, не указал название тега))

  • @Manu-ei6tn
    @Manu-ei6tn 2 года назад

    Почему мы в шаблоне base.html в теге for для верхнего меню к ключу словаря из списка menu обращаемся через точку, а не как положено? Т.е. мы прописываем так m.url_name, хотя должны были прописать так m['url_name']. В видео на 7:04. Эта такая особенность шаблонизаторов (Django, jinja)?

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

      без разницы, можно и так и так

  • @VakaramGolang
    @VakaramGolang 2 года назад +4

    почему буква p.разрешает нам в index.html использовать функцию ? она магическая ?

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

      потому что {% for p in posts %} Автор просто использовал ее в цикле для обозначения одного элемента последовательности.

  • @ruservices
    @ruservices 3 года назад +1

    Доброго времени суток. У Вас случайно нету видеоУроков - создание интернет магазина на django? Горю по срокам. .. Или быть может Вы за такие проекты беретесь?. Верстка готова...

  • @AdAd-lv8eb
    @AdAd-lv8eb 3 года назад +1

    Кто ты воин? 😁

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

    Если я введу в моделях еще один класс, для него нужно будет отдельно прописывать get_absolute_url. Джанго сможет их различить за счет полиморфизма?

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

    Прошу прощения но я не понял ... а как появляется логотип ? Там ведь просто div , без тега img ... Это какая то магия вне хогвартса ? Вроде в предыдущих уроках об этом даже упоминания не было , да и в интернете тоже ничего нет об этом . Сижу уже час и никак не пойму как же выводятся изображения на сайте если мы вообще не прописываем тегов img

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

      на память не помню, но скорее всего описан background с загрузкой фонового изображения для div в css

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

    почему в [block mainmenu] m.title работает, а не m['title']?

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

    На сколько правильно засовывать метод get_absolut_url в слой орм?

  • @MarchelloAlexandro
    @MarchelloAlexandro 3 года назад +1

    Не могу понять , почему имя модели в шаблонах используется как 'p' ? Откуда она взялась , почему именно 'p'?

    • @selfedu_rus
      @selfedu_rus  3 года назад +3

      так там же выше {% for p in posts %}

    • @MarchelloAlexandro
      @MarchelloAlexandro 3 года назад +1

      @@selfedu_rus а, понял , невнимателен) Спасибо

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

    Если я правильно понял, то когда мы в функции создаем словарь 'context', обращаться в шаблоне можно без указания словаря, а сразу к его ключам, как к переменным?

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

      да, там такой синтаксис на уровне шаблона

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

      @@selfedu_rus понял, спасибо за ответ.

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

    После ввода конструкции "{% url 'post' p.pk %}" у меня выдает ошибку при входе на сайт Reverse for 'post' with arguments '('',)' not found. 1 pattern(s) tried: ['post/(?P[0-9]+)/\\Z'] Не пойму как ее исправить?

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

      Все, получилось. У меня же в цикле i а не p

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

    почему post_id не могу уловить суть

  • @КлаусШтертебекер-ю1щ
    @КлаусШтертебекер-ю1щ 3 года назад +1

    Возможно, у меня немного дилетантский вопрос, но всё-таки хочется понимать:
    Почему сервер выдаёт ошибку когда я в своём файле urls.py пишу имя моего представления, к примеру show_post, без приставки views?
    То есть views.show_post работает а
    path('post//', show_post, name='post'),
    так не работает =/

    • @lalkabest1065
      @lalkabest1065 3 года назад

      Мб у вас прописан import views вместо from .views import * ?

    • @КлаусШтертебекер-ю1щ
      @КлаусШтертебекер-ю1щ 3 года назад

      @@lalkabest1065 у меня прописано:
      from . import views, то есть я подключаю этот файл views из текущей категории целиком, он там же где у меня файл urls.py находится.
      Если написать from .views import * то почему-то тоже ошибку выдает: "NameError: name 'views' is not defined
      ", хотя они в одном месте эти файлы находятся и джанго должен его видеть.

  • @avaz_ohunov
    @avaz_ohunov 3 года назад +1

    Почему у меня в файле about.html не наследуется block mainmenu?
    Из-за этого у меня шапка сайта не показывается при переходе на страничку about/

    • @selfedu_rus
      @selfedu_rus  3 года назад

      Вам на такие общие вопросы вряд ли кто-то ответит, много разных нюансов может быть.

    • @avaz_ohunov
      @avaz_ohunov 3 года назад +1

      @@selfedu_rus проблема была в том, что я забыл прописать menu в словаре context.
      Но в любом случае, спасибо что откликнулись на мою проблему.

  • @myratorjyyev00
    @myratorjyyev00 3 года назад

    У меня не загружается ссылка "читать пост " все писала правильно. Help me please 🙏

  • @aliaksandrzabalotnikau1948
    @aliaksandrzabalotnikau1948 4 года назад +1

    Привет, а как формировать ссылки с аргументами через амперсанду? А то во фласке попроще было, в url _for указал неожиданный аргумент и появилось, а тут чёт так не работает)

    • @selfedu_rus
      @selfedu_rus  4 года назад

      В url_for это не нужно делать, параметры GET-запроса можно получить через объект request.GET

    • @selfedu_rus
      @selfedu_rus  4 года назад

      А вообще параметр в url_for записывают через пробел, но он должен при этом соответствовать шаблону URL-адреса

    • @aliaksandrzabalotnikau1948
      @aliaksandrzabalotnikau1948 4 года назад +4

      @@selfedu_rus как получить-то понятно, я имел в виду как их туда добавить) просто иногда хочется добавить какой-нибудь аргумент next, который будет хранить информацию о том откуда пользователь перешёл

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

    Сложный урок( Очень Не понял до конца как работает get_absolute_url

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

    по сравнению с предыдущими уроками много скомканной информации. осилить не удалось

  • @МаксимГаня
    @МаксимГаня 3 года назад

    Я конечно затупок ещё тот, но что за posts, непонятно откуда оно берётся, как оно связанно с классом women, хоть убей не нашёл где это прописано

    • @standvik1159
      @standvik1159 3 года назад

      пост находится во views, в функции index
      posts = Women.objects.all()
      Он подсасывает инфу из модели, данные которой находятся в бд

    • @МаксимГаня
      @МаксимГаня 3 года назад +1

      @@standvik1159 да, уже разобрался, спасибо)

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

    Я не знаю, разбиралось ли это далее по курсу, но можно как-то дополнительно избежать дублирования и не передавать в контекст каждого view коллекцию menu? Сделать так, чтобы меню формировалось в base.html независимо оттого, на какой странице мы находимся
    Я попробовал сам и у меня не получилось, на странице about меню не формируется :)
    Если было разобрано, то ткните пж

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

      А в чем смысл это действия?

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

      @@vladimirdo избавиться от дублирования? DRY?

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

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

  • @alexbobtail4862
    @alexbobtail4862 3 года назад

    Не совсем понятно. В каком месте описано, что p это экземпляр класса Women

  • @mariyaalberdina9917
    @mariyaalberdina9917 3 года назад

    Здравствуйте! В первую очередь, конечно, спасибо вам за ваши уроки. И у меня вопрос. Целый день мучаюсь не могу установить бэкграунд для своей страницы. Ни в CSS ни прямо прописывая в HTML файле( Я пишу вот так style=" background-size: cover; background-image: {% url 'chemistry/images/b1.png' %}" и получаю на выходе следующее: NoReverseMatch at /
    Reverse for 'chemistry/images/b1.png' not found. 'chemistry/images/b1.png' is not a valid view function or pattern name. Как только стираю эту строчку - все работает. Очень нужна ваша помощь. Спасибо. (В интернете гуглила - не помогло). Bootstrap успешно подключила, и использовала шаблоны.

    • @selfedu_rus
      @selfedu_rus  3 года назад +1

      Во-первых, посмотрите, какой путь у вас получается в HTML-странице в браузере, корректно ли формируется путь. Во-вторых, нужно убедиться, что верно настроено подключение media-файлов в пакете конфигурации (файл settings.py). Об этом было отдельное занятие. Также убедитесь, что находитесь в режиме отладки DEBUG=True.

  • @maksimvlaskin7305
    @maksimvlaskin7305 3 года назад +1

    +

  • @gpankov
    @gpankov 2 года назад +4

    Не пойму почему "р" - это ссылка на класс Woman, где это биндилось?

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

      Возможно уже ненужно, но p это элементы из posts

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

    В какой момент "Читать пост" становится кнопкой? В синтаксисе нет ни button, ни input.

    • @АлексейАлексеев-ц8х9т
      @АлексейАлексеев-ц8х9т Год назад

      полагаю, что это и не кнопка, а просто ссылка, с соответствующим стилем из css

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

      @@АлексейАлексеев-ц8х9т да, так и есть. Но как же в итоге образуется кнопка в этом учебном коде?))

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

    href="{% url 'home' %}" - ни в коем разе не спорю, что так правильнее, но и href="home" при всех остальных равных так же работает. Почему так, не знаю.
    УПД:
    Я кажись понял. Я хомяка дополнительно прописывал в урлах так же, как и пустой адрес (' ')