django – 如何在模板中设置重定向URL?

我在 Python 2.7.1下使用django-social-auth和Django 1.3.1.我一直在寻找各地,我无法弄清楚如何使用自定义重定向网址进行Twitter身份验证(或其他提供商).

我已经读过我需要在我的html模板中使用这个模板标签来构建启动过程的链接

{% url socialauth_begin 'twitter' %}

使用我的settings.py文件中的值为LOGIN_REDIRECT_URL可以正常工作(虽然,请参阅我的问题:Twitter takes users to /en/logged-in/ regardless of my settings)但是,在这种特殊情况下,我需要在返回时将用户重定向到特殊的URL.

我在其他地方读过我需要将带有重定向值的变量’next’传递给模板或作为twitter auth url上的参数传递.这是怎么做到的?我的模板作为HttpResponse加载,因此,虽然我当然可以传递模板值,但我不清楚如何在上面的模板标签中使用它们.

对不起这个基本问题.

解决方法

好吧,我知道这很简单,即使问这个也觉得有点傻.我想我认为django-social-auth有这样做的特殊规定,但显然,这是非常手工的.这是最终在这里结束的其他人的解决方案:

在你看来:
    …
    来自django.utils.http import 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>
...

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...