Вопрос о получении URL в Джанго - PullRequest
0 голосов
/ 12 июля 2011

У меня есть эта страница http://127.0.0.1:8000/user/tom-brandy/.

На странице есть ссылка на http://127.0.0.1:8000/signup/.

Как мне извлечь tom-brandy в моем представлении, которое отображает страницу signup?

Я былдумать о том, чтобы использовать request.META['HTTP_REFERER'] и использовать манипуляции со строками, чтобы получить его, но это звучит как неправильный путь.

Есть ли лучший способ сделать это?

Ответы [ 3 ]

5 голосов
/ 12 июля 2011

Вы можете явно передать информацию о пользователе в ссылку регистрации в качестве параметра get /signup/?user=tom-brandy

Вы также можете использовать сеанс для установки произвольной переменной на страницах user и извлечения ее при регистрациистр.Это, наверное, самый чистый и прозрачный метод.

('user/(?P<user>[\w-]+)/', 'my.user_view')

def user_view(request, user):
    request.session['last_visited_user_page'] = user
    # ...

def signup_view(request):
    last_visited_user_page = request.session.get('last_visited_user_page')
    # ...
0 голосов
/ 12 июля 2011

При необходимости вы можете использовать HttpRequest.path_info или HttpRequest.path.

Соответствующая документация: HttpRequest.path_info

0 голосов
/ 12 июля 2011

Вы можете использовать регулярное выражение в ваших URL, которое извлекает tom-brandy из http://127.0.0.1:8000/signup/tom-brandy и передает это в качестве первого аргумента в представление регистрации

...