NoReverseMatch в производственном сервере django - PullRequest
3 голосов
/ 06 июля 2011

Проект работает нормально на сервере разработки, но когда я пытаюсь использовать его в рабочей версии (Gunicorn + Nginx), появляется ошибка NoReverseMatch.Я несколько раз проверил код и не могу найти ошибку.

urls.py:

from django.conf.urls.defaults import patterns, include, url
from django.conf import settings

urlpatterns = patterns('',
    (r'^obras/', include('obras.urls')),
)

obras urls.py:

from django.conf.urls.defaults import *
from obras import views

urlpatterns = patterns('',
    url(r'^presobra/$', views.pres_obra, name='pres_obra'), 
)

Сообщение об ошибке:

URL запроса: http://127.0.0.1:8888/admin/

Путь к Python:
['/srv/www/antingprojects.com.ar/gobras', ... ']

Значение исключения:
Поймано NoReverseMatch при рендеринге: обратное для 'pres_obra' с аргументами '()' и ключевыми словами-аргументами '{}' не найдено.

Ошибка шаблона

В шаблоне /srv/www/antingprojects.com.ar/gobras/templates/admin/index.html ошибка в строке 75 вызвала NoReverseMatch при рендеринге: для 'pres_obra' с аргументами '()' и ключевыми словами arguments '{}'не найден.

75      <li><a href={% url pres_obra %}>Presupuestos-Obras</a></li>

settings.py:

import os.path
PROJECT_DIR = os.path.dirname(__file__)
ROOT_URLCONF = 'gobras.urls'

Структура проекта:

-gobras
--obras
--media

1 Ответ

0 голосов
/ 06 июля 2011

Попробуйте добавить: из obras.urls импортируйте urlpatterns как obras_urlpatterns в urls.py. Держу пари, что это не помогает, и проблема в том, что PYTHONPATH в производстве не находит приложение obras. Убедитесь, что он установлен правильно.

...