HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Список сущностей готов, поэтому можно переходить к просмотру каждого элемента. Начинаем с маршрутизации:</p>
1 <p>Список сущностей готов, поэтому можно переходить к просмотру каждого элемента. Начинаем с маршрутизации:</p>
2 <p>В этом месте у маршрута появляется динамическая часть - идентификатор статьи. Подобный маршрут обрабатывает все страницы, имеющие вид /articles/&lt;идентификатор статьи&gt;/. Пара примеров:</p>
2 <p>В этом месте у маршрута появляется динамическая часть - идентификатор статьи. Подобный маршрут обрабатывает все страницы, имеющие вид /articles/&lt;идентификатор статьи&gt;/. Пара примеров:</p>
3 <p>Этот идентификатор используется в обработчике для выборки из базы нужной статьи.</p>
3 <p>Этот идентификатор используется в обработчике для выборки из базы нужной статьи.</p>
4 <p>Параметр<em>id</em>, который определен в маршруте, приходит в обработчик в<em>kwargs</em>. Он представляет собой словарь. Если параметров в маршруте больше одного, то они передадутся в обработчик в том же порядке, в котором они определены в маршруте:</p>
4 <p>Параметр<em>id</em>, который определен в маршруте, приходит в обработчик в<em>kwargs</em>. Он представляет собой словарь. Если параметров в маршруте больше одного, то они передадутся в обработчик в том же порядке, в котором они определены в маршруте:</p>
5 <p>Затем происходит выборка статьи из базы данных. Для нее используется функция get_object_or_404, а не get.</p>
5 <p>Затем происходит выборка статьи из базы данных. Для нее используется функция get_object_or_404, а не get.</p>
6 <p>Дело в том, что просмотр конкретной сущности должен вернуть ошибку 404, если самой сущности не существует. Метод get не помогает обработать эту ситуацию, если сущности нет, то он сгенерирует ошибку. Дальше программисту придется делать проверку на существование и самому формировать правильный HTTP-ответ.</p>
6 <p>Дело в том, что просмотр конкретной сущности должен вернуть ошибку 404, если самой сущности не существует. Метод get не помогает обработать эту ситуацию, если сущности нет, то он сгенерирует ошибку. Дальше программисту придется делать проверку на существование и самому формировать правильный HTTP-ответ.</p>
7 <p>Так как задача очень частая, то разработчики Django решили ее внутри фреймворка. С одной стороны, они добавили функцию get_object_or_404, которая выбрасывает исключение в случае отсутствия записи. С другой - добавили специальную обработку данных исключений на уровне обработки запросов.</p>
7 <p>Так как задача очень частая, то разработчики Django решили ее внутри фреймворка. С одной стороны, они добавили функцию get_object_or_404, которая выбрасывает исключение в случае отсутствия записи. С другой - добавили специальную обработку данных исключений на уровне обработки запросов.</p>
8 <p>И последний шаг - передача статьи в шаблон. Здесь ничего нового:</p>
8 <p>И последний шаг - передача статьи в шаблон. Здесь ничего нового:</p>
9  
9