Python Social Auth - - Django - 找到网址名称

时间:2016-08-04 21:34:11

标签: python django python-social-auth

因此,当使用带有django的python social auth时,必须将登录社交按钮指向不同的URL,具体取决于社交网络。这是一个例子:

<form action="{% url 'social:begin' 'facebook' %}">
    <button type="submit" class="btn btn-primary"><span class="fa fa-facebook">&nbsp</span>Login with Facebook </button>
</form>

<form action="{% url 'social:begin' 'google-oauth2' %}">
    <button type="submit" class="btn btn-danger"><span class="fa fa-google">&nbsp</span>Login with Google</button>
</form>

正如您所看到的,网址参数不直观,有时它们是社交网络的名称,如facebook,有时它更像google-oauth2这样的复杂事物。有没有办法可以找出传递给de函数的参数?现在,我需要Instagram和Twitter的登录按钮。我无法在文档中找到关于此的明确参考。

最佳,

亚历。

1 个答案:

答案 0 :(得分:1)

我认为文档缺乏对此的引用。如果有人需要找到要在{% url %}声明中使用的应用程序的名称,可以在social.apps.backends下的源代码中找到 - 每个后端都是一个声明类的python文件,每个类都声明一个名为name的属性。在Instagram的情况下,它看起来像这样:

class InstagramOAuth2(BaseOAuth2):
    name = 'instagram'
    ....

因此,这意味着社交登录按钮应如下所示:

{% url 'social:begin' 'instagram' %}