Форум сайта python.su
Имеется:
urls.py
urlpatterns = patterns('',
url(r'^order/', include('order.urls')),
)
urlpatterns = patterns('',
url(r'^new', views.new, name='new'),
url(r'^auth$', views.auth, name='auth'),
url(r'^(\d+)/recipient', views.recipient, name='recipient'),
url(r'^(\d+)/select', views.friend_select, name='select'),
url(r'^(\d+)/photos', views.photos, name='photos'),
url(r'^(\d+)/poster(\d+)', views.poster, name='poster'),
url(r'^(\d+)/posters', views.order, name='posters'),
url(r'^poster(\d+)/remove', views.remove_poster, name='remove_poster'),
url(r'^(\d+)/contacts', views.contacts, name='contacts'),
url(r'^(\d+)/payment', views.payment, name='payment'),
url(r'^(\d+)/delivery', views.delivery, name='delivery'),
)
urlpatterns = patterns('',
url(r'^order/new', order.views.new),
url(r'^order(?P<order_id>\d+)/', include('order.urls')),
)
urlpatterns = patterns('',
url(r'^auth$', views.auth, name='auth'),
url(r'^recipient', views.recipient, name='recipient'),
url(r'^select', views.friend_select, name='select'),
url(r'^photos', views.photos, name='photos'),
url(r'^poster(\d+)', views.poster, name='poster'),
url(r'^posters', views.order, name='posters'),
url(r'^poster(\d+)/remove', views.remove_poster, name='remove_poster'),
url(r'^contacts', views.contacts, name='contacts'),
url(r'^payment', views.payment, name='payment'),
url(r'^delivery', views.delivery, name='delivery'),
)
Отредактировано (Июнь 7, 2011 05:48:19)
Офлайн
что значит
nuklea?
добавить во все шаблоны, обрабатываемые как orderNumber/someaction инстанс объекта Order
Отредактировано (Июнь 3, 2011 19:16:17)
Офлайн
appetitoПереформулировал топик. Я имел ввиду, что нужно добавит в request инстанс модели Order.
что значитnuklea?
добавить во все шаблоны, обрабатываемые как orderNumber/someaction инстанс объекта Order
что будет делать объект в шаблоне URL?
Офлайн
можно сделать декоратор типа
def decorator(fn):
def _wrapper(request, order_id):
request.order = Order.objects.get(pk=order_id)
return fn(request, ordr_id)
return _wrapper
Офлайн
Спасибо за возможное решение. Еще мысли есть? :)
Офлайн
ну сделай мидлевару, где будешь парсить урл, а дальше как в декораторе приведенном выше. А для чего тебе это нужно?
Офлайн
Чтобы уменьшить количество повторяющегося кода.
Офлайн
А почему бы вам просто написать функцию принимающую request, order_id и отдающую order, ну и выбрасывающую 403-й эксепшн когда надо?
По одной повторяющейся строчке в каждой вьюхе ничего страшного.
Решение получше и правильнее декоратора и уж тем более мидлвари.
Офлайн