мой шаблон URL выглядит так:
(r '^ fb / custom / (? P [a-zA-Z0-9 +] *) / admin /', include (custom_admin_site.urls)),
Я переопределил метод admin_view моего сайта администратора:
def admin_view(self, view, cacheable=False):
def inner(request, *args, **kwargs):
if kwargs.has_key('custom_id'):
request.custom_id = kwargs.pop('custom_id')
return view(request, *args, **kwargs)
if not cacheable:
inner = never_cache(inner)
# We add csrf_protect here so this function can be used as a utility
# function for any view, without having to repeat 'csrf_protect'.
if not getattr(view, 'csrf_exempt', False):
inner = csrf_protect(inner)
return update_wrapper(inner, view)
Таким образом, мне не нужен параметр custom_id в методах представления, таких как index. Моя проблема в том, что я не могу использовать urlresolvers.reverse ('custom-admin: index').
Если я использую его без параметра, я получаю эту ошибку:
Page not found. Request URL: http://localhost:8000/fb/custom/(?P%3Ccustom_id%3E[a-zA-Z0-9%5C+]*)/admin/
Окей, нет ничего удивительного. Я не предоставил параметр custom_id. Но с параметром я получаю эту ошибку:
reverse() got an unexpected keyword argument 'custom_id'
Есть идеи, как это решить. Я действительно хотел бы использовать обратный поиск. Тег шаблона URL имеет ту же проблему.