【发布时间】:2023-01-11 03:28:23
【问题描述】:
试图在 django 中获取表名,我需要它通过 if statemnet 正确显示详细视图。 我有这样的观点要展示
class Home(ListView):
template_name = 'home.html'
def get_queryset(self):
qs1 = Book.objects.all()
qs2 = CD.objects.all()
qs3 = Film.objects.all()
queryset = sorted(list(chain(qs1, qs2, qs3)), key=operator.attrgetter('title'))
return queryset
它返回给我这个
[<CD: 音乐 1>, <CD: 音乐 2>, <Book: 一些书>]
如何在此模板中获取“CD”或“Book”
{% block content %}
<div class="row">
{% for object in object_list %}
<div class="col-md-3">
<div class="card card-product-grid">
<img src="{{ object.image.url }}">
<a href="{% url 'DetailBook' object.pk %}" class="title">{{ object.title }}</a>
</div>
</div>
{% endfor %}
</div>
{% endblock content %}
同时,如果显示 detailview 和 listview 是个坏主意,而且它的做法不同,请告诉我,我将不胜感激
我尝试了在循环中显示 object.key 的不同方式,但效果不是很好。和其他查询集查询。
【问题讨论】:
-
查看django-polymorphic。它确实有助于继承。它有一个
.instance_of()方法,可以只返回“cd”对象或只返回“book”对象。