Python 为什么我在/处得到错误NoReverseMatch?
我正试图在django上建立一个博客网站。我是一个初学者,我不知道为什么我会犯这个错误。 请帮我解决这个错误。我提供了代码views.py、models.py和base.html文件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',
#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 %}">
带有博客文章详细链接的模板在哪里?