№1 Практическая онлайн-школа обучения языкам программирования Python (Django), JavaScript, Kotlin В. Бовсуновского.

Специальная, подарочная акция получения доступа к Django4!

Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.

23. Научимся получать url переопределением get_absolute_url(прямой url).

Ещё один способ получения url - get_absolute_url(прямой url).

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

Хотя в документации сказано яснее ясного, читать не умеют и не знают, где, для нас с вами непонимание это не позволительная роскошь.

Давайте сразу поясню.

Например, мы извлекаем url по namespace и по slug, но не написали в настройках модели unique=True, то есть поле slug не является уникальным, что будет делать Джанго?

При использовании namespase Django найдёт сначала пространство имен, а потом в нем будет искать первое совпадение, например по slug и если несколько записей с одним и тем же slug, то выдаст первое, что бы такого не было мы и указываем unique=True, то есть второй slug с таким же названием исключен. Джанго сработает надёжно и точно выдаст нужную запись.

slug = models.SlugField(max_length=50,unique=True)

насчёт настроек полей, ранее ведь в уроках я говорил, что они должны быть изучены, проверьте себя, вы знаете их изучили, просмотрели, попробовали. Заметьте не одно слово я не говорю зря, если говорю, то точно в этом есть смысл. Будьте внимательны и требовательны к себе, ведь вы хотите быть профи?

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

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

def get_absolute_url(self):
        return reverse('yes_ns:detail_absolute_path', kwargs={'pk': self.pk, 'slug': self.slug  })  #'slug': self.slug

Перейти к уроку

24. Пропишем url для get_absolute_url().

Давайте научимся записывать в url get_absolute_url() и поймём особенности.

Перейти к уроку

25. Нам пришлось попотеть, что бы заставить Джанго выдать исключение.

Django 4 совсем офигел. Нам пришлось попотеть, что бы заставить Джанго выдать исключение. Так как все что мы писали ранее работает и наш код шаблона так же пригоден, но нам ведь нужно иное. Пока Джанго извлекает не то что нам нужно и многие на этом успокаиваются, работает и добре, но ведь работает не get_absolute_url(), давайте разбираться в тонкостях и мелочах и подводных камнях нашей невнимательности.

Django 4 совсем офигел. Нам пришлось попотеть, что бы заставить Джанго выдать исключение.

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

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

Перейти к уроку

26. Теория get_absolute_url().

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

get_absolute_url()

Перейти к уроку

27. Многие делают одно в джанго, а получают иное.

Вы уже поднаторели, давайте как я вам подброшу задачек. проанализируйте.

Перейти к уроку

1 2 >


Просмотр всех сообщений c тегом: получаем url переопределяя get_absolute_url()