Джанго возвращает RuntimeError вместо 404 - PullRequest
0 голосов
/ 04 ноября 2010

В моем проекте Django у меня есть RUntimeError, когда я должен получить 404. В описании написано:

Значение исключения: максимальная глубина рекурсии превышена

Ошибка возникает, только когда я пытаюсь получить доступ к несуществующей странице (правильный результат будет страницей 404, не так ли?). Это ошибка в Django или это моя вина? Я предоставлю больше информации, если это необходимо.

РЕДАКТИРОВАТЬ: я попытался синхронизировать базу данных (фактически удалить базу данных и синхронизировать ее с нуля), перезапустить сервер и даже закомментировать все urlpatterns во всех urls.py файлах.

РЕДАКТИРОВАТЬ: Вот как выглядит трассировка:

File "/usr/lib/pymodules/python2.6/django/core/handlers/base.py" in get_response
  83.                     request.path_info)
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in resolve
  218.                     sub_match = pattern.resolve(new_path)
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in resolve
  218.                     sub_match = pattern.resolve(new_path)
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in resolve
  218.                     sub_match = pattern.resolve(new_path)

И последние несколько строк:

File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in resolve
  218.                     sub_match = pattern.resolve(new_path)
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in resolve
  216.             for pattern in self.url_patterns:
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in _get_url_patterns
  245.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

Ответы [ 2 ]

0 голосов
/ 04 ноября 2010

попробуйте не загружать все модули промежуточного программного обеспечения, просто прокомментируйте их все в настройках и посмотрите, если проблема где-то там.

0 голосов
/ 04 ноября 2010

Полагаю, это твоя вина :). У меня также был RuntimeError вчера. Это было вызвано неправильным указанием класса в качестве аргумента метода super при наследовании класса ModelAdmin.

class MyAdmin(admin.ModelAdmin):
    def queryset(self, request):
        qs = super(AnotherAdmin, self).queryset(request)
        ...

Я исправил:

class MyAdmin(admin.ModelAdmin):
    def queryset(self, request):
        qs = super(MyAdmin, self).queryset(request)
        ...

Не знаю, есть ли у вас такая же проблема, но есть что проверить.

Надеюсь, это поможет

...