无法link Django 的模板页面
Not able to link the template page of Django
我正在尝试使用 django-allauth
进行申请;我的 Django
版本是 1.11.5
。
我正在尝试在另一个模板上显示结果:facebook_personality_traits.html
代码如下:
settings.py
SITE_ID = 1
LOGIN_REDIRECT_URL = 'facebook_personality_traits/'
SOCIALACCOUNT_QUERY_EMAIL = True
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'SCOPE': ['email', 'user_posts'],
# 'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'METHOD': 'js_sdk',
'FIELDS': [
'id',
'email',
'name',
'first_name',
'last_name',
],
'EXCHANGE_TOKEN': True,
'VERIFIED_EMAIL': True
}
}
ACCOUNT_LOGOUT_ON_GET = True
views.py
def fb_personality_traits(request):
# logger.debug('FB Page Loaded')
return render(request, 'home/facebook_personality_traits.html')
urls.py
url(r'^facebook_personality-traits/$', views.fb_personality_traits, name="fb_personality_traits"),
facebook_personality_traits.html
<html>
<body>
Welcome back {{ user.first_name }} {{ user.last_name}}
<a href="/">Home</a>
</body>
</html>
但我可以运行有效地做到这一点。我想我为网站声明了 url 是有问题的。这是错误的快照:
请把遗漏的部分告诉我。
你的urls:
facebook_personality-traits/
但你测试其他url
facebook_personality_traits/
# ^^^^^^
需要换地方
您的应用似乎使用了不同的 urls.py。但是,您将 url 放入主 urls.py.
url(r'^facebook_personality-traits/&', views.fb_personality_traits, name="fb_personality_traits"),
将此行添加到您的应用程序 urls.py 中,您将 facebook_callback
url 放在那里:
url(r'^login/token/facebook_personality_traits/$', views.fb_personality_traits, name="fb_personality_traits"),
顺便说一下,你的 url 末尾有过多的 & 字符,我猜你想在正则表达式中放置 $ 符号来表示行尾。
编辑 1:
我对这个问题的第一印象是你没有把 url 放在正确的位置,但据我所知,重定向是从这个路径 /accounts/facebook/login/token/
下的页面完成的。由于 settings.py
中的重定向 url 中没有前面的 /
,因此会导致相对重定向。
将您的 url 修正如下:
url(r'^facebook_personality_traits/$', views.fb_personality_traits, name="fb_personality_traits"),
在您的 settins.py 中,您设置了重定向 url,如下所示:
LOGIN_REDIRECT_URL = 'facebook_personality_traits/'
因为这是相对的 url,它转到 url /accounts/facebook/login/token/facebook_personality_traits/
。在 LOGIN_REDIRECT_URL
的开头加上一个斜线 /
就可以解决你的问题了。
LOGIN_REDIRECT_URL = '/facebook_personality_traits/'
我正在尝试使用 django-allauth
进行申请;我的 Django
版本是 1.11.5
。
我正在尝试在另一个模板上显示结果:facebook_personality_traits.html
代码如下:
settings.py
SITE_ID = 1
LOGIN_REDIRECT_URL = 'facebook_personality_traits/'
SOCIALACCOUNT_QUERY_EMAIL = True
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'SCOPE': ['email', 'user_posts'],
# 'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'METHOD': 'js_sdk',
'FIELDS': [
'id',
'email',
'name',
'first_name',
'last_name',
],
'EXCHANGE_TOKEN': True,
'VERIFIED_EMAIL': True
}
}
ACCOUNT_LOGOUT_ON_GET = True
views.py
def fb_personality_traits(request):
# logger.debug('FB Page Loaded')
return render(request, 'home/facebook_personality_traits.html')
urls.py
url(r'^facebook_personality-traits/$', views.fb_personality_traits, name="fb_personality_traits"),
facebook_personality_traits.html
<html>
<body>
Welcome back {{ user.first_name }} {{ user.last_name}}
<a href="/">Home</a>
</body>
</html>
但我可以运行有效地做到这一点。我想我为网站声明了 url 是有问题的。这是错误的快照:
请把遗漏的部分告诉我。
你的urls:
facebook_personality-traits/
但你测试其他url
facebook_personality_traits/
# ^^^^^^
需要换地方
您的应用似乎使用了不同的 urls.py。但是,您将 url 放入主 urls.py.
url(r'^facebook_personality-traits/&', views.fb_personality_traits, name="fb_personality_traits"),
将此行添加到您的应用程序 urls.py 中,您将 facebook_callback
url 放在那里:
url(r'^login/token/facebook_personality_traits/$', views.fb_personality_traits, name="fb_personality_traits"),
顺便说一下,你的 url 末尾有过多的 & 字符,我猜你想在正则表达式中放置 $ 符号来表示行尾。
编辑 1:
我对这个问题的第一印象是你没有把 url 放在正确的位置,但据我所知,重定向是从这个路径 /accounts/facebook/login/token/
下的页面完成的。由于 settings.py
中的重定向 url 中没有前面的 /
,因此会导致相对重定向。
将您的 url 修正如下:
url(r'^facebook_personality_traits/$', views.fb_personality_traits, name="fb_personality_traits"),
在您的 settins.py 中,您设置了重定向 url,如下所示:
LOGIN_REDIRECT_URL = 'facebook_personality_traits/'
因为这是相对的 url,它转到 url /accounts/facebook/login/token/facebook_personality_traits/
。在 LOGIN_REDIRECT_URL
的开头加上一个斜线 /
就可以解决你的问题了。
LOGIN_REDIRECT_URL = '/facebook_personality_traits/'