Django-单击后无法加载页面

时间:2018-12-21 09:44:19

标签: python django templates

我是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

感谢所有人的帮助

2 个答案:

答案 0 :(得分:1)

我相信您需要DetailView代替AuthorDetailView的ListView。

答案 1 :(得分:0)

在我看来像错字,您希望generic.DetailView路径使用ListView(而不是author/<int:pk>)。

我也不认为为详细视图的模板扩展base_generic是不正确的。但这完全取决于此基本模板中的内容。