Django ValueError в / admin / - PullRequest
       10

Django ValueError в / admin /

2 голосов
/ 19 ноября 2009

Я запускаю Django с mod_python на компьютере с Red Hat Linux Некоторое время назад по неизвестной мне причине перестал работать админ, выдав 500 ошибку. Ошибка выглядит следующим образом:

ValueError at /admin/
Empty module name
Request Method: GET
Exception Type: ValueError
Exception Value: 
Empty module name
Exception Location: /usr/local/lib/python2.6/site-packages/django/utils/importlib.py in import_module, line 35
Python Executable: /usr/bin/python
Python Version: 2.6.2

Кто-нибудь сталкивался с этим раньше? Я понятия не имею, как решить эту проблему.

Спасибо за любую помощь.

1 Ответ

5 голосов
/ 11 мая 2010

Я просто отлаживал эту проблему. Ошибка возникает, когда Django пытается настроить процессоры контекста шаблона, и основной причиной было определение, которое должно было быть кортежем, но фактически являлось строкой.

Это то, что у меня было в моем конфигурационном файле:

TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth'
)

Вот что я должен был иметь:

TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth',
)

Без запятой, Python рассматривает значение переменной как строку. Таким образом, код Django, который выглядит так:

for path in settings.TEMPLATE_CONTEXT_PROCESSORS:
    i = path.rfind('.')
    module,attr = path[:i],path[i+1:]

первым значением 'path' является 'd', а не 'django.core.context_processors.auth'. Это приводит к тому, что значение 'i' равно -1, и, следовательно, значение 'module' будет пустым.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...