這只是發生在我的網站之一,我不知道是什麼導致了它。
這種情況發生在mod_wsgi爲特定應用程序提供的任何URL上,該應用程序過去一直很正常。Django提供零字節響應
在settings.py
原因HTTP在 語法錯誤語法錯誤並不影響什麼,好像永遠不會加載該文件。
有什麼要檢查?
這只是發生在我的網站之一,我不知道是什麼導致了它。
這種情況發生在mod_wsgi爲特定應用程序提供的任何URL上,該應用程序過去一直很正常。Django提供零字節響應
在settings.py
原因HTTP在 語法錯誤語法錯誤並不影響什麼,好像永遠不會加載該文件。
有什麼要檢查?
罪魁禍首就是這條線:
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。
是否在settings.py中對MIDDLEWARE_CLASSES設置進行了任何更改? django文件不應該是罪魁禍首。中間件類對訂單非常挑剔。這是否修改過? –
不,我沒有改變'MIDDLEWARE_CLASSES'的順序,或者就此而言,並沒有改變'settings.py'。我可以通過刪除對該導入的評論來重現該問題。 –
您是否嘗試使用開發服務器運行您的應用程序以查看所有設置是否正常,以及是否有任何錯誤顯示? (當然,不要在80端口上這樣做)。 –
@Thomas,它表示發現了0個錯誤。 –
您的網絡服務器似乎是Apache,您檢查了error.log文件嗎? –