Форум сайта python.su
75
Всем привет.
В Django есть возможность делать reverse для вьюх у которых нет параметра name.
то есть
url(r'^articles/(\d{4})/$', 'news.views.year_archive'), reverse('news.views.year_archive')
Отредактировано Singularity (Дек. 16, 2013 05:42:24)
Офлайн
568
SingularityИ это отвратительно, не следует практиковать подобный подход, ИМХО.
В Django есть возможность делать reverse для вьюх у которых нет параметра name
Офлайн
75
FishHook
а такое нормально ?
Офлайн
568
Приблизительно мысль понятна.
Я бы сделал по другому (если я правильно понял идею), я бы не стал городить неведомое количество url-паттернов, а сделал бы один(или четыре) и соответствующее количество view-диспетчеров, которые возвращают as_view() классов, выбираемых в зависимости от kwarg-ов, из диспетчера.
Офлайн
75
FishHookчто это ? Я ничего не понял
view-диспетчер
Офлайн
568
Я так понял, что у тебя куча однотипных view, для которых ты генерируешь урлы исходя из имени модели.
Я предлагаю обойтись одним урлом, в который ты параметром зашиваешь имя модели
url(r'^(P<model_name>\w+)/$', dispatcher, name=....),
def dispatcher(request, model_name): ..... Тут определяешь какой класс вьюхи нужен cbv_class = .... ..... return cbv_class.as_view()(request)
Офлайн