我想对用户进行身份验证,以便当他登录到他的帐户然后想要返回登录页面时,他/她应该被自动重定向到仪表板页面。我怎么能这样做?
@login_required
@csrf_exempt
def dashboard(request):
users = GrabhaloUser.objects.exclude(user_id = request.user.id)
if request.is_ajax():
if request.POST.has_key('message'):
selected_users = request.POST.getlist('selected_users[]')
message = request.POST['message']
send_query(request,selected_users,message)
ctx = { 'users' : users }
return render_to_response('dashboard/dashboard.html',ctx, context_instance = RequestContext(request))
登录网址
urlpatterns = patterns('',
url(r'login/',login,kwargs = {'template_name' : 'auth/login.html'}, name = 'grabhalo_login'),
url(r'logout/', logout,kwargs = {'template_name' : 'auth/logout.html'}, name = 'grabhalo_logout'),
url(r'register/','apps.auth.views.register', name = 'grabhalo_register'),
)
答案 0 :(得分:1)
创建一个函数login_page
,检查那里的用户身份验证,如果经过身份验证,将其重定向到仪表板,否则返回登录页面。
将此函数映射到urls.py
login
网址
def login_page(request):
if request.user.is_authenticated():
return redirect('/dashboard/')
else:
return login(request)
然后将此功能映射到登录URL。
url(r'login', 'modules.energy.login.views.login_page', name = 'cilantro_login'),
答案 1 :(得分:0)
你可以试试这个:
每当用户单击登录页面链接时,都会执行登录页面的视图。在该视图中,检查用户是否已登录。如果用户已登录,则将其重定向到仪表板,否则显示登录页面。它很简单。示例代码:
if request.user.is_authenticated():
#load dashboard
else:
#load login page