2011-12-13 38 views
0

这只是发生在我的网站之一,我不知道是什么导致了它。
这种情况发生在mod_wsgi为特定应用程序提供的任何URL上,该应用程序过去一直很正常。Django提供零字节响应

enter image description here

settings.py原因HTTP在 语法错误语法错误并不影响什么,好像永远不会加载该文件。

有什么要检查?

+0

您是否尝试使用开发服务器运行您的应用程序以查看所有设置是否正常,以及是否有任何错误显示? (当然,不要在80端口上这样做)。 –

+0

@Thomas,它表示发现了0个错误。 –

+0

您的网络服务器似乎是Apache,您检查了error.log文件吗? –

回答

0

罪魁祸首就是这条线:

from django.contrib.auth.forms import AuthenticationForm 
middleware.py

移动进口到使用AuthenticationForm功能解决了这个问题:

from django.http import HttpResponseRedirect 
from django.conf import settings 
from django.contrib import messages 
from django.contrib.auth import login 
#from django.contrib.auth.forms import AuthenticationForm <-- THE LINE WAS HERE 

class LoginFormMiddleware(object): 
    def process_request(self, request): 
     if request.method == 'POST' and 'is_top_login_form' in request.POST: 
      from django.contrib.auth.forms import AuthenticationForm # <-- MOVED HERE 

      form = AuthenticationForm(data=request.POST) 
      is_valid = form.is_valid() 

      if is_valid: 
       login(request, form.get_user()) 

       program = request.user.get_profile().first_intern.program 
       NavigationMiddleware.set_program(request, program) 

       return HttpResponseRedirect('%s?quick' % program.get_absolute_url()) 

      else: 
       messages.error(request, request.POST['username'], extra_tags='login') 
       return HttpResponseRedirect(request.get_full_path())    

我仍然不知道为什么曾经工作过的代码,为什么会突然闯进以及为什么这样做解决了这个问题。毕竟,Python中必须有一些magick。

+0

是否在settings.py中对MIDDLEWARE_CLASSES设置进行了任何更改? django文件不应该是罪魁祸首。中间件类对订单非常挑剔。这是否修改过? –

+0

不,我没有改变'MIDDLEWARE_CLASSES'的顺序,或者就此而言,并没有改变'settings.py'。我可以通过删除对该导入的评论来重现该问题。 –