【问题标题】:NoReverseMatch in django production serverdjango 生产服务器中的 NoReverseMatch
【发布时间】:2011-09-29 18:26:52
【问题描述】:

该项目在开发服务器中运行良好,但是当我尝试在生产 sv(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

【问题讨论】:

  • 请贴出实际的错误信息。
  • 我遇到了类似的错误;一件奇怪的事情是,如果我使用 gunicorn_django,它可以工作,但如果我使用 gunicorn,我会收到此错误。我的 python 路径还包括我的应用程序,所以我认为这不是路径问题。

标签: django django-urls


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2012-05-29
    • 2013-12-11
    • 2013-05-01
    • 1970-01-01
    • 2019-11-17
    • 2012-08-28
    相关资源
    最近更新 更多