1

サーバーエラーが突然表示され始めた理由がわかりません。何か案は?

完全なトレースバック:

Traceback (most recent call last):
  File "C:\Python27\lib\wsgiref\handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "C:\Python27\lib\site-packages\django\contrib\staticfiles\handlers.py", line 67, in __call__
    return self.application(environ, start_response)
  File "C:\Python27\lib\site-packages\django\core\handlers\wsgi.py", line 241, in __call__
    response = self.get_response(request)
  File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 179, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 221, in handle_uncaught_exception
    return debug.technical_500_response(request, *exc_info)
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 66, in technical_500_response
    html = reporter.get_traceback_html()
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 286, in get_traceback_html
    c = Context(self.get_traceback_data())
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 244, in get_traceback_data
    frames = self.get_traceback_frames()
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 390, in get_traceback_frames
    pre_context_lineno, pre_context, context_line, post_context = self._get_lines_from_file(filename, lineno, 7, loader,
 module_name)
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 371, in _get_lines_from_file
    context_line = source[lineno].strip('\n')
IndexError: list index out of range
[01/Nov/2012 10:46:55] "GET /home HTTP/1.1" 500 59
Traceback (most recent call last):
  File "C:\Python27\lib\wsgiref\handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "C:\Python27\lib\site-packages\django\contrib\staticfiles\handlers.py", line 67, in __call__
    return self.application(environ, start_response)
  File "C:\Python27\lib\site-packages\django\core\handlers\wsgi.py", line 241, in __call__
    response = self.get_response(request)
  File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 179, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 221, in handle_uncaught_exception
    return debug.technical_500_response(request, *exc_info)
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 66, in technical_500_response
    html = reporter.get_traceback_html()
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 286, in get_traceback_html
    c = Context(self.get_traceback_data())
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 244, in get_traceback_data
    frames = self.get_traceback_frames()
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 390, in get_traceback_frames
    pre_context_lineno, pre_context, context_line, post_context = self._get_lines_from_file(filename, lineno, 7, loader,
 module_name)
  File "C:\Python27\lib\site-packages\django\views\debug.py", line 371, in _get_lines_from_file
    context_line = source[lineno].strip('\n')
IndexError: list index out of range
4

2 に答える 2

3

何らかの種類の Web サーバーを使用しているのか、開発サーバーのみを使用しているのかはわかりません。いずれにせよ、使用しているサーバーをシャットダウンし、プロジェクト内のすべての .pyc ファイルをクリーンアップしてください。ウェブサーバーを再起動すると、準備完了です。

最も一般的なのは、コンパイルされたファイルとソースの間に不一致があります。なぜこれが起こるのかについては、手がかりはありませんが、過去に私に起こったことがあります.上記を実行することで解決しました.

于 2012-11-01T15:07:36.303 に答える
1

だから私はついにそれを理解しました...トレースバックにdebug.pyが含まれているために何が起こるかを確認するために、debug=Falseを設定しました。とにかく、私はまだ初心者であり、これが本当に意味があるかどうかさえわかりませんが、設定でdebug = Falseを変更した後、新しいトレースバックを取得しました。フォームが一致しませんでした。なぜこれが開発サーバーをクラッシュさせるのか全くわかりませんが、修正して動作するようになりました。したがって、問題が何であったかを明確にするために:

#forms.py

PAYMENT_PLAN = {
    ('A', 'A'),
    ('B', 'B'),
    ('C', 'C'),
}

class SurveyForm(ModelForm):
    class Meta:
        model = Survey
        widgets = {
            'pay_plan': Select(choices=PAY_PLAN),
            ...
        }

したがって、debug=Falseを使用した新しいトレースバックは次のように述べています。

NameError: name 'PAY_PLAN' is not defined

とにかく、私はそれを修正しました、そして今それは再び働きます。したがって、誰かが同じ問題に遭遇した場合は、debug = Falseを回して何が起こるかを確認してみてください。おそらく、それを理解するのに役立ちます。

于 2012-11-01T20:03:19.060 に答える