Как установить URL перенаправления в шаблоне? - PullRequest
3 голосов
/ 07 декабря 2011

Я использую django-social-auth с Django 1.3.1 под Python 2.7.1.Я искал повсюду, и я не могу понять, как использовать пользовательский URL-адрес перенаправления для аутентификации Twitter (или других поставщиков).

Я прочитал, что мне нужно использовать этот шаблонтег в моем html-шаблоне, чтобы создать ссылку для запуска процесса:

{% url socialauth_begin 'twitter' %}

Это работает относительно хорошо, используя значение в моем файле settings.py для LOGIN_REDIRECT_URL (хотя, см. мой вопрос здесь: Twitter принимает пользователей в / en / вошел в систему / вне зависимости от моих настроек ) Однако в данном конкретном случае мне нужно перенаправить пользователя на специальный URL-адрес по возвращении.

У меня естьПрочитайте в других местах, что мне нужно передать переменную 'next' с моим значением перенаправления в шаблон или в качестве параметра в URL-адресе авторизации Twitter.Как это сделать?Мой шаблон загружен как HttpResponse, поэтому, хотя я, безусловно, могу передать ему значения шаблона, не ясно, как я могу использовать их в приведенном выше теге шаблона.

Извините за этот основной вопрос.

Ответы [ 2 ]

7 голосов
/ 08 декабря 2011

Хорошо, я знал, что это было просто, и я чувствую себя немного глупо, даже спрашивая об этом. Я думаю, я думал, что у django-social-auth были специальные условия для этого, но, видимо, это довольно просто. Вот решение для всех, кто в конечном итоге здесь:

По вашему мнению: ... из django.utils.http импорт urlquote ...

def my_view(request, ...):
  ...
  redirect_url = urlquote("http://your_required_redirect_url/")
  ...
  return render_to_response('your_template.html', { 'redirect_url' : redirect_url })

В 'your_template.html':

...
Login with <a href="{% url socialauth_begin 'twitter' %}?next={{ redirect_url }}">Twitter</a>
...
0 голосов
/ 06 января 2013

Я использую этот код:

<a href="{% url socialauth_begin 'twitter' %}?next={{ request.get_full_path }}">Login with Twitter</a>

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

...