Python django 2.0.7 NoReverseMatch at/posts

Python django 2.0.7 NoReverseMatch at/posts,python,django,amazon-ec2,ubuntu-16.04,Python,Django,Amazon Ec2,Ubuntu 16.04,找不到“post_详细信息”的反向项“post_detail”不是有效的视图函数或模式名称 Django转到2.0.7之后,我设置了一些url规则。它在我的计算机上以127.0.0.1本地工作,但在机器上不能远程工作(ubuntu 1604) 代码: post_list.html: {% for post in posts %} <div> <p>published: {{ post.published_date }}</p> <h1&g

找不到“post_详细信息”的反向项“post_detail”不是有效的视图函数或模式名称

Django转到2.0.7之后,我设置了一些url规则。它在我的计算机上以127.0.0.1本地工作,但在机器上不能远程工作(ubuntu 1604)

代码: post_list.html:

{% for post in posts %}
<div>
    <p>published: {{ post.published_date }}</p>
    <h1><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h1>
    <p>{{ post.text|linebreaksbr }}</p>
</div>
{% endfor %}
mysite.url:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]
解决了。我需要在blog.url中添加'blog'作为我的应用程序名称,并在mysite.url中添加'blog'作为我的命名空间

谢谢你,伙计


在2.0.7中,我需要在blog.url中添加一个app_名称(blog),并在mysite.url(blog)中添加一个名称空间。只有在mysite.url中添加名称空间而不在blog.url->django中添加应用程序名称时,才会告诉我添加应用程序名称。只有在blog.url中添加一个app_名称,而不在mysite.url->django中添加名称空间,这会告诉我blog是一个未注册的名称空间。还记得刷新gunicorn。

假设你的应用程序名是blog,那么在你的blog的url.py中添加

app_name= 'blog'

在模板使用中,
{%url'blog:post_detail'pk=post.pk%}

也许你正在使用一个名称空间,需要
myapp:post_detail
?@AshishAcharya非常感谢你的提醒,我没有使用名称空间,我曾经使用过名称空间,但同样的错误发生了,我现在将再次尝试并编辑我的问题“at/posts”,但是你的网址是“post”?确定您没有试图访问远程主机中的错误url吗?@guillermochamorro可能是因为我没有在远程计算机中刷新gunicorn,而且调试消息有点过时(我刚刚发现了这一点,可能对我的情况也有影响)。非常感谢。谢谢你,萨缪尔!我还在mysite.url中添加了博客名称空间(如果答案中需要)
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]
app_name= 'blog'