如何在我的模板中仅渲染最近添加的模型对象
Posted
技术标签:
【中文标题】如何在我的模板中仅渲染最近添加的模型对象【英文标题】:how to render only recently added object of my model in my template 【发布时间】:2021-11-02 14:51:56 【问题描述】:如何只显示我的模型最近添加的对象而不是我的模板中的所有对象是我的views.py
class home(View):
def get(self, request):
quote = Quote.objects.all()
return render(request, 'home.html', 'qoutes':quote)
现在如果渲染对象,所有的报价都会显示给我,但我想渲染的不是所有模型,而是我添加的最近的报价得到渲染
class Quote(models.Model):
todays_Quote = models.CharField(max_length=500, blank=False)
by = models.CharField(max_length=100, blank=False)
created = models.DateTimeField(auto_now=True)
def __str__(self):
return self.todays_Quote
【问题讨论】:
Quote
何时被认为是最近的?
【参考方案1】:
您可以通过以下方式检索最后 10 个Quote
s:
class home(View):
def get(self, request):
quote = Quote.objects.order_by('-created')[:10]
return render(request, 'home.html', 'qoutes':quote)
或者我们可以检索所有Quote
s,例如最后一天提交的:
from datetime import timedelta
from django.db.models.functions import now
class home(View):
def get(self, request):
quote = Quote.objects.filter(created__gte=Now()-timedelta(days=1))
return render(request, 'home.html', 'qoutes':quote)
【讨论】:
以上是关于如何在我的模板中仅渲染最近添加的模型对象的主要内容,如果未能解决你的问题,请参考以下文章