Django如何将模板限制为只有两个帖子
Posted
技术标签:
【中文标题】Django如何将模板限制为只有两个帖子【英文标题】:Django how to limit template to only two posts 【发布时间】:2021-04-03 15:43:15 【问题描述】:我只想显示模板上添加的最后两个帖子(最好是今天发布的帖子),我已经看到这样做了,但不是基于类的视图。
from .forms import PostForm
from .models import Post
from django.views.generic import ListView
from django.views import generic
from django.urls import reverse_lazy
class homeView(ListView):
model = Post
template_name = 'MAG-page.html'
MAG-page.html
% for post in object_list %
<div class="col-lg-6 col-md-12">
<div>
<!--Image-->
<div class="view overlay rounded z-depth-1-half mb-3">
<img src="post.Thumbnail.url" class="img-fluid" >
<a>
<div class="mask rgba-white-slight"></div>
</a>
</div>
<!--Excerpt-->
<div class="news-data">
<a href="" class="light-blue-text">
<h6>
<i class="fas fa-plane"></i>
<strong> post.author</strong>
</h6>
</a>
<p>
<strong>
<i class="far fa-clock"></i> post.Date</strong>
</p>
</div>
<h3>
<a>
<strong>post.title|safe</strong>
</a>
</h3>
<p> post.Text|safe</p>
</div>
% endfor %
【问题讨论】:
这可能与以下问题 ***.com/questions/3907628/… 重复。答案是添加slice
django模板标签。
这能回答你的问题吗? How do you limit list objects template side, rather than view side
【参考方案1】:
只需添加一个查询集并将其限制为 2 个对象。
class YourView(ListView):
queryset = Post.objects.order_by('-date')[:2] # replace 'date' if it does not match your case
# other attributes/methods
【讨论】:
以上是关于Django如何将模板限制为只有两个帖子的主要内容,如果未能解决你的问题,请参考以下文章
与常规 Django 模板相比,NDjango 模板都有哪些限制?