Я думаю, что причина, по которой django заставляет вас писать все, заключается в следующем: Что не так с "магией"?
Во-вторых, карта, которую вы предлагаете, мешает работатьаргументы для представления функций.Самым простым было бы обеспечить по соглашению, что все представления используют только аргументы GET
и POST
и в противном случае принимают некоторый стандартный набор аргументов (например, request
, template_name
).
Для реализации этой картыЕсли хотите, вы можете перебрать свой модуль views и сгенерировать объект шаблонов.Имейте в виду, это действительно уродливый хакер и в значительной степени побеждает цель отображения URL.В urls.py
:
from django.conf.urls.defaults import *
import myapp.views
urlpatterns = patterns('myapp.views',
*map(lambda x: url(r'^myapp/%s/$' % x, x, name='myapp_%s' % x),
[k for k,v in myapp.views.__dict__.items() if callable(v)]))