我是Django开发的新手。
我正在关注有关MDN(https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django)上的库的教程
在我遵循代码之前,所有工作正常,但是我尝试自己实现作者页面。可能是一个非常愚蠢的问题,但是有一天我像狗一样尾巴转过身来。
有2页:author_list和作者详细信息。
我设置了urls.py
(在我的项目中)我设置了view.py
并创建了模板。
我遵循与教程相同的步骤来实现book_list和book_detail,但是当我单击作者时,页面不会转到该作者的详细信息,而是停留在author_list.html
中。
这是代码urls.py:
path('authors/', views.AuthorListView.as_view(), name='authors'),
path('author/<int:pk>', views.AuthorDetailView.as_view(), name='author-detail'),
这里views.py:
class AuthorListView(generic.ListView):
model = Author
class AuthorDetailView(generic.ListView):
model = Author
此处author_list.html
和链接get_absolute_url
:
{% extends "base_generic.html"%}
{% block content %}
<h1>Author list</h1>
{% if author_list %}
<ul>
{% for aut in author_list %}
<li><a href="{{ aut.get_absolute_url }}">{{ aut.first_name }} - {{ aut.last_name }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>There are no author.</p>
{% endif %}
{% endblock %}
此处author_detail.html:
{% extends "base_generic.html" %}
{% block content %}
<h1>Author</h1>
{% if author %}
<p><strong>Nome: </strong> {{ author }}</p>
<p><strong>Nato il : </strong> {{ author.date_of_birth }}</p>
<p><strong>Morto il : </strong> {{ author.date_of_death }}</p>
{% endif %}
{% endblock %}
这是屏幕截图
Author_list.html before click url=catalog/authors/
After click url change but page not
感谢所有人的帮助
答案 0 :(得分:1)
我相信您需要DetailView代替AuthorDetailView的ListView。
答案 1 :(得分:0)
在我看来像错字,您希望generic.DetailView
路径使用ListView
(而不是author/<int:pk>
)。
我也不认为为详细视图的模板扩展base_generic
是不正确的。但这完全取决于此基本模板中的内容。