因此,当使用带有django的python social auth时,必须将登录社交按钮指向不同的URL,具体取决于社交网络。这是一个例子:
<form action="{% url 'social:begin' 'facebook' %}">
<button type="submit" class="btn btn-primary"><span class="fa fa-facebook"> </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"> </span>Login with Google</button>
</form>
正如您所看到的,网址参数不直观,有时它们是社交网络的名称,如facebook
,有时它更像google-oauth2
这样的复杂事物。有没有办法可以找出传递给de函数的参数?现在,我需要Instagram和Twitter的登录按钮。我无法在文档中找到关于此的明确参考。
最佳,
亚历。
答案 0 :(得分:1)
我认为文档缺乏对此的引用。如果有人需要找到要在{% url %}
声明中使用的应用程序的名称,可以在social.apps.backends
下的源代码中找到 - 每个后端都是一个声明类的python文件,每个类都声明一个名为name
的属性。在Instagram的情况下,它看起来像这样:
class InstagramOAuth2(BaseOAuth2):
name = 'instagram'
....
因此,这意味着社交登录按钮应如下所示:
{% url 'social:begin' 'instagram' %}