2012-12-26 83 views
0

我觉得@login_required非常有用。我在每个视图之前都使用了这个@login_required(login_url='/login/')。如果用户试图访问/upload URL重定向到URL为:http://127.0.0.1:8000/login/?next=/upload_file/我的网址是非常简单的:现在@login_required在Django中没有像预期的那样工作?

urlpatterns = patterns('', 

    #url(r'^admin/', include(admin.site.urls)), 
    url(r'^upload_file/', 'fileupload.views.upload_file'), 
    url(r'^show_file/', 'fileupload.views.show_list'), 
    url(r'^sync/', 'fileupload.views.sync'), 
    url(r'^login/', 'fileupload.views.login_user'), 
    url(r'^upload_file_form', 'fileupload.views.upload_file_form') 
) 

当用户按下登录页面重定向到任何地方。我相信我的网址格式不正确。我错过了什么?由于

编辑

def login_user(request): 
    errors = [] 
    state = "LOG IN" 
    username = password = '' 
    if request.method == 'POST': 
     username = request.POST['username'] 
     password = request.POST['password'] 
     user = authenticate(username='username', password='password') 
     if user is not None: 
      if user.is_active: 
       login(request, user) 
       state = "You're successfully logged in!" 
      else: 
       state = "Your account is not active, please contact the site admin." 
     else: 
      state = "Your username and/or password were incorrect." 

    return render_to_response('login.html', {'state':state, 'username': username}, context_instance=RequestContext(request)) 

回答

2

fileupload.views.login_user视图需要兑现next查询参数本身。这是Django的登录视图内置的,但是由于您已经推出了自己的视图,因此您需要自己实现该功能。

+0

我该怎么做? – user1881957

+0

看看Django视图的实现方式 - 'django.contrib.auth.views' –

+0

我已经在我的模板中指定了下一个:但同样的错误。 – user1881957

相关问题