【发布时间】:2019-10-28 21:27:41
【问题描述】:
我正在关注 django 教程系列,音乐网站包含包含专辑的 ListView(正在显示),但包含每个专辑中歌曲列表的 DetailView 未显示。
我已尝试更改 for 循环中的迭代名称,但它仍然无法正常工作,列表显示了我何时不使用通用方法,即使用索引和详细信息函数而不是 IndexView 和 DetailView 类。
MY music.views 代码
class IndexView(generic.ListView):
template_name='music/index.html'
def get_queryset(self):
return Albums.objects.all()
class DetailView(generic.DetailView):
model = Albums
template_name = 'music/detail.html'
我的 detail.html 代码应该显示歌曲列表但不起作用
{% extends 'music/base.html' %}
{% block title %} Album Details {% endblock %}
{% block body %}
<img src ="{{ all_album.alb_logo }}">
<h1>{{ all_album.alb_title }}</h1>
<ul>
{% for song in all_album.song_set.all %}
<li>{{ song.song_title }} </li>
{% endfor %}
</ul>
<br>
{% endblock %}
我的 index.html 显示专辑列表,这是有效的
{% extends 'music/base.html' %}
{% block body %}
<h2>List of Current albums available</h2>
<div class='container-fluid'>
<div class='row'>
{% for album in object_list %}
<div class='col-lg-4'>
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="{{ album.alb_logo }}" >
<div class="card-body">
<h5 class="card-title">{{ album.alb_title }}</h5>
<p class="card-text">{{ album.alb_artist }}</p>
<a href="{% url 'music:detail' album.id %}" class="btn
btn-primary btn-sm">View details</a>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
我的 urls.py 代码#
urlpatterns = [
path('',views.IndexView.as_view(), name='index'),
path('<int:pk>/', views.DetailView.as_view(), name='detail'),
]
detail.html 页面应显示单击时已在数据库中的选定专辑中的歌曲列表,但未显示。
【问题讨论】:
标签: django django-views