Выбор ответа Junior Django: устройство обновлено
Зачем name у маршрута и reverse
Вопрос
Зачем маршрутам дают name и строят ссылки через reverse() или {% url %}?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Чтобы менять путь в одном месте, а ссылки строились сами. Если путь orders/<int:pk/ поменяется, захардкоженные строки по всему проекту сломаются, а reverse("order-detail", args=[pk]) продолжит работать.
Варианты ответа
- Чтобы ускорить маршрутизацию: именованные маршруты резолвятся по индексу
- Без
nameмаршрут не попадёт вurlpatternsи не будет работать - Чтобы менять путь в одном месте, а ссылки строились самиправильный ответ
- Для автоматической генерации API-документации по именам маршрутов
Разбор
Если путь orders/<int:pk>/ поменяется, захардкоженные строки по всему проекту сломаются, а reverse("order-detail", args=[pk]) продолжит работать. На скорость роутинга name не влияет, маршрут работает и без имени, а документация строится другими средствами.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.