django - Nginx 服务器上的 Django 没有反向匹配
问题描述
我正在尝试在托管在数字海洋上的 ubuntu 液滴上构建一个简单的博客应用程序。
我有 DJango 应用程序处于开发中期,我得到一个没有反向匹配的视图存在
这是错误:
'NoReverseMatch at / Reverse for 'post_detail' not found. 'post_detail' is not a valid view function or pattern name.'
这是我的网址模式:
from . import views
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'),
]
~
这是我的看法
from django.shortcuts import render, get_object_or_404
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
~
这是我的 nginx 文件:
server {
listen 80;
server_name XXX.XXX.XXX.XXX;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/XXXX/Django;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/XXX/Django/BizBlog.sock;
}
}
错误发生在哪里?我无法弄清楚这一点,我以前曾与 Django 合作过,并且知道它与在我的视图函数中搜索字符串模式的 url 有关,并且无法找到它,但该函数就在那里。怎么了?
这是我的主要 url.py:
from django.contrib import admin
from django.urls import path
from django.conf.urls import include
from django.conf.urls import url
urlpatterns = [
path('admin/', admin.site.urls),
url(r'', include('blog.urls')),
]
解决方案
只需停止 django 开发服务器进程,在 linux 上重新启动 windows/gunicorn 上的 services waitress 和 windows/linux 上的 nginx 即可。
推荐阅读
- php - 如何从 sftp 获取磁盘可用空间?PHP
- java - 向服务发送带有两个参数的请求时出现空指针
- postman - 从数组中随机播放 Postman 预请求脚本的数据
- javascript - 试图解决一个练习题,千兆秒,Javacsript
- python - 如何使用参考数据框作为地图将列表转换为数据框?
- video - 如何从通用网站下载视频?
- mysql - 使用不存在的字段对记录进行排序
- vue.js - Vue shopping cart product variations adding to cart but item in cart changes instead of adding new item
- azure-active-directory - Microsoft Graph API equivalent of Set-UnifiedGroup HiddenFromExchangeClientsEnabled
- java - JavaMail throws MailConnectException on Linux VPS but works locally at Windows machine