我正在为我的网站使用@Omab 的 django-social-auth。
在设置中,我已SOCIAL_AUTH_NEW_USER_REDIRECT_URL
设置为/profile
. 我的问题是,在视图中,我如何检查用户是否是新用户?有我可以访问的变量吗?
我正在为我的网站使用@Omab 的 django-social-auth。
在设置中,我已SOCIAL_AUTH_NEW_USER_REDIRECT_URL
设置为/profile
. 我的问题是,在视图中,我如何检查用户是否是新用户?有我可以访问的变量吗?
我假设这SOCIAL_AUTH_LOGIN_REDIRECT_URL
两者SOCIAL_AUTH_NEW_USER_REDIRECT_URL
都指向/profile
. 并且您希望在用户被定向到/profile
使用SOCIAL_AUTH_NEW_USER_REDIRECT_URL
.
最简单的方法是使用这样的新 url 模式:
urls = [
(r'^profile/$', 'profile'),
(r'^profile/new/$', 'profile', {'new_user': True}),
]
urlpatterns = patterns('project.app.views', *urls)
from django.shortcuts import render
def profile(request, new_user=False):
if new:
# if user is new code
return render(request, 'path/to/template.html', {'new_user': new_user})
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/profile'
SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/profile/new'
在这里阅读:https ://docs.djangoproject.com/en/1.5/topics/http/urls/#passing-extra-options-to-view-functions
:)
找到了解决方案。
变量is_new
在变量中设置request.session
。您可以按如下方式访问它:
name = setting('SOCIAL_AUTH_PARTIAL_PIPELINE_KEY', 'partial_pipeline')
if name in request.session:
if request.session[name]['kwargs']['is_new'] == True:
#Do something.
感谢您的回答!