该项目在开发服务器中运行正常,但是当我尝试在生产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
最佳答案
尝试添加:从obras.urls中将urlpatterns作为obras_urlpatterns导入到urls.py中。我敢打赌,它失败了,问题在于生产中的PYTHONPATH找不到obras应用程序。确保正确设置。
关于django - Django生产服务器中的NoReverseMatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6599295/