Django 页面未找到错误/url未与pk一起使用
我正在当地图书馆的MDN项目中学习Django。 我的两个页面正在呈现,而书籍详细信息页面未呈现,并且未找到给定错误页面。如果我遗漏了什么,请告知: 到目前为止,整个项目都在MDN文档上 catalog/url.pyDjango 页面未找到错误/url未与pk一起使用,django,Django,我正在当地图书馆的MDN项目中学习Django。 我的两个页面正在呈现,而书籍详细信息页面未呈现,并且未找到给定错误页面。如果我遗漏了什么,请告知: 到目前为止,整个项目都在MDN文档上 catalog/url.py from django.urls import path from catalog import views app_name = 'catalog' urlpatterns = [ path('', views.index, name='index'), p
from django.urls import path
from catalog import views
app_name = 'catalog'
urlpatterns = [
path('', views.index, name='index'),
path('books/', views.BookListView.as_view(), name='books'),
path('book/<int:pk>', views.BookDetailView.as_view(), name='book-detail'),
]
从django.url导入路径
从目录导入视图
应用程序名称='目录'
URL模式=[
路径(“”,views.index,name='index'),
路径('books/',views.BookListView.as_view(),name='books'),
路径('book/',views.BookDetailView.as_view(),name='book-detail'),
]
catalog/templates/catalog/book_detail.html
{% extends 'catalog/base.html' %}
{% block content %}
<h1>Title: {{ book.title }}</h1>
<p><strong>Author:</strong> <a href="{{ book.author.get_absolute_url }}">{{ book.author }}</a></p>
<p><strong>Summary:</strong> {{ book.summary }}</p>
<p><strong>ISBN:</strong> {{ book.isbn }}</p>
<p><strong>Language:</strong> {{ book.language }}</p>
<p><strong>Genre:</strong> {{ book.genre.all|join:", " }}</p>
<div style="margin-left:20px;margin-top:20px">
<h4>Copies</h4>
{% for copy in book.bookinstance_set.all %}
<hr>
<p class="{% if copy.status == 'a' %}text-success{% elif copy.status == 'd' %}text-danger{% else %}text-warning{% endif %}">{{ copy.get_status_display }}</p>
{% if copy.status != 'a' %}<p><strong>Due to be returned:</strong> {{copy.due_back}}</p>{% endif %}
<p><strong>Imprint:</strong> {{copy.imprint}}</p>
<p class="text-muted"><strong>Id:</strong> {{copy.id}}</p>
{% endfor %}
</div>
{% endblock %}
{%extends'目录/base.html%}
{%block content%}
标题:{{book.Title}
作者:
摘要:{{book.Summary}
ISBN:{{book.ISBN}}
语言:{{book.Language}}
流派:{{book.Genre.all |加入:“,”}
副本
{book.bookinstance_set.all%}中的副本为%
{{copy.get_status_display}
{%if copy.status!='a'%}到期返回:{{copy.Due\u back}{%endif%}
压印:{{copy.Imprint}
Id:{{copy.Id}
{%endfor%}
{%endblock%}
catalog/templates/catalog/base.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="{% static 'catalog/style.css' %}">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-wEmeIV1mKuiNpC+IOBjI7aAzPcEZeedi5yW5f2yOq55WWLwNGmvvx4Um1vskeMj0" crossorigin="anonymous"/>
{% block title %}
<title></title>
{% endblock %}
</head>
<body>
<header>
<div class="container-fluid">
<div class="row">
<div class="col-sm-2">
{% block sidebar %}
<ul class="sidebar-nav list-inline1 p-2">
<li class="list-inline-item1"><a href="{% url 'catalog:index' %}">Home</a></li>
<li class="list-inline-item1"><a href="{% url 'catalog:books' %}">All books</a></li>
<li class="list-inline-item1"><a href="">All authors</a></li>
</ul>
{% endblock %}
</div>
</div>
</div>
</header>
<div class="container-fluid">
<div class="row">
<div class="col-md-10">
{% block content %}
{% endblock %}
</div>
</div>
</div>
<!-- Optional JavaScript; choose one of the two! -->
<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-p34f1UUtsS3wqzfto5wAAmdvj+osOnFyQFpp4Ua3gs/ZVWx6oOypYoCJhGGScy+8" crossorigin="anonymous"></script>
</body>
</html>
{%load static%}
{%block title%}
{%endblock%}
{%块边栏%}
{%endblock%}
{%block content%}
{%endblock%}
好吧,如果你说“页面未找到pk”,至少在views.py中提供你的BookDetailView类
。亲爱的Mas,请查找如下class BookDetailView(generic.DetailView):model=Book
如果未更改Book
model的主键,则找不到URL和视图的任何问题。。。你说你的列表视图工作正常,这意味着URL是正确的。。然后,/{PATH_TO_APP}/book/3/
将起作用。如果存在pk=3Hi Mas的book对象,我尝试了上述解决方案,但仍然存在相同的错误。找不到第404页。