Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我在/处得到错误NoReverseMatch?_Python_Django - Fatal编程技术网

Python 为什么我在/处得到错误NoReverseMatch?

Python 为什么我在/处得到错误NoReverseMatch?,python,django,Python,Django,我正试图在django上建立一个博客网站。我是一个初学者,我不知道为什么我会犯这个错误。 请帮我解决这个错误。我提供了代码views.py、models.py和base.html文件 #models.py from django.db import models from django.urls import reverse class Post(models.Model): author = models.ForeignKey( 'auth.User',

我正试图在django上建立一个博客网站。我是一个初学者,我不知道为什么我会犯这个错误。 请帮我解决这个错误。我提供了代码views.py、models.py和base.html文件

#models.py
from django.db import models
from django.urls import reverse


class Post(models.Model):
    author = models.ForeignKey(
        'auth.User',
        on_delete = models.CASCADE,
        null = True
        )
    title = models.CharField(max_length = 20, default='')
    text = models.TextField()


    def __str__(self):
        return self.title

    def get_absolute_url(self): # new
        return reverse('blog_post_details', args=[str(self.id)])
views.py

from django.views.generic import ListView, DetailView
from django.views.generic.edit import CreateView

from .models import Post

class HomeResponse(ListView):
        model = Post
        template_name = 'home.html'

class PostDetail(DetailView):
    """docstring for PostDetail"""
    model = Post
    template_name = 'post_detail.html'



class NewPost(CreateView):
        model = Post
        template_name = 'new_post.html'
        fields = '__all__'
这是我的URL.py代码

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('', views.HomeResponse.as_view(), name='blog_name'),
    path('post/new/', views.NewPost.as_view(), name='blog_new_post'),
    path('post/<int:pk>/',views.PostDetail.as_view(),name='blog_post_details'),
]
来自django.contrib导入管理
从django.url导入路径
从…起导入视图
URL模式=[
路径(“”,views.homesponse.as_view(),name='blog_name'),
路径('post/new/',views.NewPost.as_view(),name='blog_new_post'),
路径('post/',views.postdail.as_view(),name='blog_post_details'),
]
base.html浏览器显示此代码的错误。它显示“blog\u post\u details”的
Reverse,未找到任何参数。尝试了1个模式:[“post/(?P[0-9]+)/$”]

<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <header>
        <h1>Django Blog</h1>
        <h4 style="float: right;"><a href="{% url 'blog_new_post' %}">+ New Post</a></h4>
        <hr>
    </header>
    <a href="{% url 'blog_name' %}">Home</a>
    <a href="#"></a>

    {% block content %}{% endblock content %}

</body>
</html>


{% extends 'base.html' %}

家
Django博客

{%block content%}{%endblock content%} {%extends'base.html%}
这是带有blog\u post\u详细信息链接的模板 {%block content%}

    {% for post in object_list %}

            <fieldset><a href="{% url 'blog_post_details' %}">
                <h1>{{ post.title }}</h1>
                <p style="font-size: 20px;">{{ post.text }}</p>
                <h4>By: {{ post.author }}</h4></a>
            </fieldset>
    {% endfor %}
{% endblock content %}
{%for post in object_list%}
{%endfor%}
{%endblock内容%}

您还需要在模板中添加id,“详细信息视图”专门寻找一个id来显示详细信息视图,该id在url和视图中提到,但在模板中没有提到

<a href="{% url 'blog_post_details' post.id %}">

带有博客文章详细链接的模板在哪里?