如何在django中分离登录重定向URL

时间:2014-09-15 07:14:17

标签: python django django-socialauth

我已经构建了一个django app.Can有人帮助我在从facebook(django-social-auth)和普通登录表单登录时分离重定向URL。 我有两种类型的用户,一种是我需要使用facebook登录,另一种是使用表单。 我已为这两个目的定义了不同的URL,并在我的views.py中定义了它 在我的settings.py中也给出了SOCIAL_AUTH_LOGIN_REDIRECT_URL,但在使用表单登录时,它也被重定向到同一个URL。 请帮忙。 附上相关代码 提前谢谢。

views.py:

def admin_dashboard(request):
    if request.user.id!=None and request.user.usertype.description=="ADMIN" and request.user.is_authenticated:
        if request.method=="GET":
            return render_to_response('testu/admin_dashboard.html',context_instance=RequestContext(request))


def student_dashboard(request):
    if request.user.id!=None and request.user.usertype.description=="STUDENT" and request.user.is_authenticated:
        if request.method=="GET":
            return render_to_response('testu/student_dashboard.html',{"tests":Test.objects.all()},context_instance=RequestContext(request))

urls.py:

urlpatterns = patterns('',
    url(r'', include('social_auth.urls')),
    url(r'^admin_dashboard/',admin_dashboard),
    url(r'^student_dashboard/',student_dashboard),
)+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py:

FACEBOOK_APP_ID = '...'
FACEBOOK_API_SECRET = '...'
FACEBOOK_EXTENDED_PERMISSIONS = ['email']
SESSION_SERIALIZER='django.contrib.sessions.serializers.PickleSerializer'
SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/student_dashboard/'
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/student_dashboard/'
SOCIAL_AUTH_USER_MODEL = 'myapp.customuser'

基本上,每当我使用" ADMIN"的用户登录时描述,甚至被重定向到学生记事板'

1 个答案:

答案 0 :(得分:1)

您是否尝试过常用的登录重定向视图?例如:

LOGIN_REDIRECT_URL = '/my_common_view/'

def my_common_view(request):
    if user is student:
        redirect to student dashboard
    else:
        redirect to admin dashboard

这应该可以解决这个问题。