Как стать автором
Обновить

Комментарии 12

Добавь к урлу имя, без него reverse работать не будет.

А вообще я бы не стал таким пользоваться. Гораздо удобнее, когда все урлы в одном списке, легче окинуть взглядом.
согласен. метод подойдет для маленьких сайтов, где и урлов то мало. он удобен в момен написания кода, но общяя управляемость проектом упадет. на самом деле - нужно пробовать, чтобы ойенить, но слишком уже близко к идейной поломке архитектуры разделения урлов
Да я сначала так и сделал. там получается зависимость от нижних декораторов. Если хотя бы один из них не присваивает рапперу такой же __name__, что и у оборачиваемой функции, то приплыли. А если выписывать имя явно в декораторе, то получается избыточность. Можно сделать как доп. параметр, впрочем.
Я бы назвал ваш подход антипаттерном, которому ни в коем случае нельзя следовать, даже для маленьких проектов!

Стандартный метод Django весьма хорош, особенно, если вы планируете дальнейшее развитие вашего кода и его повторное использование. Практика показывает, что так обычно и бывает. К тому же, ломка общепринятой схемы Django-приложения усложняет понимание кода и его контроль. И для стороннего человека, впервые видящего код, исправление поведения URL'ов станет ещё мучительней.

Когда view-функций становится много, становится выгодно разносить их в отдельные модули, а то и отдельные приложения. В этом случае, ваш метод выйдет разработчику боком.
Ясно, спасибо. Да я в общем то оговорил момент повышения связности, только почему для маленьких проектов это плохо? Вроде как в этом случае, наоборот, от разделения проект пухнет, хотя здесь оверхед и малюсенький совсем, конечно.
Потому что ваш маленький проект когда-нибудь придётся дорабатывать. Даже если прямо сейчас вам так не кажется, вероятность этого весьма высока. Так зачем сначала изобретать велосипед и экономить себе какие-то лишние 30-60 секунд работы? Чтобы потом потратить куда больше на попытки понять, почему срабатывает не та вьюха, или на переделку всё обратно в urls.py?

Особенно это важно, если вы фрилансер, так как доработки наверняка придётся делать другим.

Вы молодец, что стараетесь упростить работу с Django! Действительно, есть много рутинных моментов, которые можно улучшить своими нововведениями. Но куда важнее является единый стиль написания и универсальность. Пусть даже это будет именно ваш стиль. Поэтому эти доработки должны быть такими, чтобы их можно было бы использовать ВСЕГДА, а не в каких исключительных случаях. Например такие, как тег {% url %} Ивана Сагалаева, который, в результате, включили в состав Django.
Да, я поработал, неудобно получается даже для маленького проекта.
Спасибо за полезные комментарии! На всякий случай поднял вам карму :)
ну... =)

1) порядок урлов важен всё же. Чтож теперь и вьюшки в спец. порядке располагать?
2) если вам в руки попадёт даже маленький проект с такими штуками - замучаетесь искать нужную вьюшку
3) если я не торможу - у вас в urlpatterns при каждом запросе что ли всё добавляется? Эт же в теле with_url надобно делать.
4) ...

ну в общем идея, чтобы уж сразу получить по заднице - надобно в листе рассылок джанги постить =).
собственно лучший враиант, даже для маленього проекта - свой urls.py в каждом app.
Пасиб. В общем я попробовал, работать действительно неудобно. А по началу идея казалась привлекательной.

Насчёт 3-го пункта - врядли, если только питон каждый раз модуль не импортит.
global urlpatterns в вашем декораторе не нужно объявлять global это лишнее.
спасибо, я питон не знаю к сожалению.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.