django生产服务器中的NoReverseMatch

时间:2011-07-06 15:47:40

标签: django django-urls

该项目在开发服务器中工作正常,但是当我尝试在生产系列(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'), 
)

错误讯息:

请求网址: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',参数'()'和关键字参数'{}'未找到。

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 :(得分:0)

尝试添加:从obras.urls导入urlpatterns作为obras_urlpatterns到urls.py.我敢打赌,它失败了,问题是生产中的PYTHONPATH没有找到obras应用程序。确保正确设置。