Передача переменной через redirect_to и request.user в urlpatterns

Рейтинг: 1Ответов: 1Опубликовано: 05.07.2011

Суть проблемы: делаю редирект в urlpatterns функцией redirect_to на определённый адрес, нужно попутно передать русскую строку текста(хотя можно и просто булево значение name=1 например). Сейчас реализовал как гет-параметр в урл, вот:

(r'^foo/$', redirect_to, {'url': '/bar?check=1'}),

Но что-то мне кажется, что можно и как-то изящнее, без использования гет-параметров, просто указав переменную=значение. Есть соображения? Или мой способ - единственный?

Ах да, ещё было бы неплохо влезть в запрос request, что бы использовать его данные в составлении url(конкретно - нужны сведения о текущем пользователе, т.е. request.user). Есть какая-то возможность определить пользователя в urlpatterns? Спасибо.

Ответы

▲ 5Принят

Юзай urlencode.

import urllib

# Это твои GET-параметры, которые ты как-то сюда передал
param1 = 'value1'  
param2 = 'value2'

# Твой какой-то код, паттерны  
params = urllib.urlencode({'param1': param1, 'param2': param2})
(r'^foo/$', redirect_to, {'url': '/bar?%s' % params}),