оптимизация Django URL - PullRequest
       1

оптимизация Django URL

0 голосов
/ 24 сентября 2011

URL с 2 параметрами запроса:

/ prefix1 / 1 /
/ prefix2 / 2 /
/ prefix1 / 1 / prefix2 / 2
/ prefix2 / 2 /prefix1 / 1

url( ur'^prefix1/(?P<p1>\d+)/$', 'app.views.view' ),
url( ur'^prefix2/(?P<p2>\d+)/$', 'app.views.view' ),
url( ur'^prefix1/(?P<p1>\d+)/prefix2/(?P<p2>\d+)/$', 'app.views.view' ),
url( ur'^prefix2/(?P<p2>\d+)/prefix1/(?P<p1>\d+)/$', 'app.views.view' ),

Возможно ли сделать это более «СУХОЙ» (с 3 параметрами запроса, строки в urls.py = 15)?

1 Ответ

0 голосов
/ 24 сентября 2011

Я взломал образец и, если комментарий Лазерона не сделал этого для вас, вот что я придумал:

url(r'^(?P<param1>foo|bar)(/(?P<param2>\d+))?(/(?P<param3>\d+))?(/(?P<param4>\d+))?/$', 'demo.views.view'),

И мой взгляд выглядел так:

def view(request, *args, **kwargs):
    return render_to_response("index.html",
        { 'dict': [(k, v) for k,v in kwargs.iteritems()] },
        context_instance=RequestContext(request))

Он постепенно добавлял параметры по мере добавления в URL слева направо, как и следовало ожидать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...