无法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/'