Есть ли способ узнать имя переменной, которую URL Dispatcher передает для просмотра? - PullRequest
0 голосов
/ 05 ноября 2011

Я не знаю, возможно ли это, но я объясню, что я хочу попробовать!

Я создал процессор контекста, который будет загружать некоторую информацию о пользователе.Мне нужно знать, в этом процессоре контекста, если в списке переменных есть переменная с именем "group", которая будет передана моему представлению, и если это так, я загружу больше вещей.

Только процессорполучить объект REQUEST, и я думаю, что ТОЛЬКО это невозможно.

Но с REQUEST_PATH (из запроса) я мог бы создать магию (w / urls.py) и найти точное представление и переменную, которая былавыбрать Джанго.Есть ли простой способ сделать это (или, может быть ... способ?: D)?

---- решение ----

Решение (используя то, что говорит yasar11732)это что-то вроде этого:

x = resolve(request.META["PATH_INFO"])
if 'group_name' in x.kwargs
    do_domething()

Спасибо!:)

Ответы [ 2 ]

2 голосов
/ 05 ноября 2011

см .: resol () Это именно то, что вы пытаетесь сделать. Имейте в виду, что эта функция выдает исключение 404, если не находит соответствия, поэтому будьте готовы его перехватить.

0 голосов
/ 05 ноября 2011

Не могли бы вы просто добавить это выборочно для каждого просмотра? Тогда вы могли бы сделать что-то вроде этого:

def group_processor(request):
    # ...

def some_view(request, user, group=None):
    # ...
    processors = [group_processor] if group else []
    context = RequestContext(request, {}, processors)
    return render_to_response("my_template.html", context_instance=context)
...