№1 Практическая онлайн-школа обучения языкам программирования Python (Django), JavaScript, Kotlin В. Бовсуновского.
Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.
21. Получим ещё частое исключение. AttributeError ...either an object pk or a slug in the URLconf.
Ещё очень частое исключение, которое выскакивает и выбивает из колеи разработчиков:
AttributeError ...either an object pk or a slug in the URLconf.
По сути дело связно с не понимаем pk и id, не пониманием переопределения и не желанием вдуматься в исключение.
Давайте разберём его и воспроизведём.
Я говорил в уроках, что исключения получения после исправления очень важно воспроизвести заново(запомните это правило), что бы понимать суть и видеть что и где править.

22. Высший пилотаж в работе с исключениями url. Фиксим баги.
Исправлять исключения(ошибки по народному)
, так же говорят иногда фиксить баги
.
Давайте получим первый опыт, как фиксить баги
, принцип просто искать до последнего и думать, а потом бежать в гугл.
Давайте покажу.
Исправлять исключения(ошибки по народному), так же говорят иногда фиксить баги.
Давайте получим первый опыт, как фиксить баги, принцип просто искать до последнего и думать, а потом бежать в гугл.
Давайте покажу.
Перейти к уроку
23. Научимся получать url переопределением get_absolute_url(прямой url).
Ещё один способ получения url - get_absolute_url(прямой url)
.
Здесь народ потерялся и не хочет читать документацию, столько домыслов создали и потом по интернету одни и те же ошибки копируют.
Хотя в документации сказано яснее ясного, читать не умеют и не знают, где, для нас с вами непонимание это не позволительная роскошь.
Давайте сразу поясню.
Например, мы извлекаем ur
l по 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()
.
Выбрать по тегам: план изучения программирования, получаем url переопределяя get_absolute_url(), Получение ссылок на объекты, получение ссылок с использованием namespace, представления django 4 на основе классов, 1. django 4 входим. 2. Навык получения ссылок на объекты. 3. ListView переопределение методов. Сайт на Python Django4 часть 1 Создание сайта на Django 4. Часть 2. Django + git VS Code. Часть 3. Погружение в формы Django 4. Часть 4. Заканчиваем писать блог. Часть 5. Пишем views профессионально. Часть 6. User Profile. Часть 7.