【发布时间】:2020-10-14 18:07:20
【问题描述】:
我有两类模型图像和视频嵌入。问题是如何将两个类放在单个列表视图中。当没有图像时,视频嵌入显示 这是我的代码。
views.py
def news_list(request):
"""news list category"""
category = Category.objects.get(id=1)
a_list = Article.objects.filter(category=1)
g_list = Gallery.objects.filter(category=1)
v_list = Videoembed.objects.filter(category=1)
object_list = sorted(
chain(a_list, g_list, v_list), key=attrgetter("publish"), reverse=True
)
paginator = Paginator(object_list, 4) # 3 posts in each page
page = request.GET.get("page")
try:
posts = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer deliver the first page
posts = paginator.page(1)
except EmptyPage:
# If page is out of range deliver last page of results
posts = paginator.page(paginator.num_pages)
return render(
request,
"blog/post/news.html",
{"category": category, "page": page, "posts": posts},
)
在 news.html 中
<div class="row">
{% for post in posts %}
<div class="col-lg-4 col-md-6 col-sm-12 pb-4">
{% if forloop.counter0|divisibleby:3 and not forloop.first %}<div class="w-100"></div>{% endif %}
{% video post.video %}
<img src="{{ post.images.url }}" width="300px">
<P>
<h2><a href="{{ post.get_absolute_url }}">
{{ post.title }}
</a> </h2> </p>
<p class="date">
Published {{ post.publish }} by {{ post.author }}
</p>
{{ post.body|safe|truncatewords:30|linebreaks }}
</div>
{% endfor %}
感谢您的帮助
【问题讨论】:
标签: python-3.x django django-views django-templates