Django提供零字节响应

时间:2011-12-13 15:44:52

标签: python django apache mod-wsgi

这恰好发生在我的一个网站上,我不知道是什么造成的 对于特定应用程序由mod_wsgi提供的任何URL都会发生这种情况,以前它可以正常工作。

enter image description here

settings.py中的语法错误导致HTTP 500 <{1}}中的语法错误不会影响任何内容 - 似乎永远不会加载此文件。

有什么要检查的?

1 个答案:

答案 0 :(得分: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中必须有一些魔力。