如何在我的模板中仅渲染最近添加的模型对象

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 个Quotes:

class home(View):
    def get(self, request):
        quote = Quote.objects.order_by('-created')[:10]
        return render(request, 'home.html', 'qoutes':quote)

或者我们可以检索所有Quotes,例如最后一天提交的:

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)

【讨论】:

以上是关于如何在我的模板中仅渲染最近添加的模型对象的主要内容,如果未能解决你的问题,请参考以下文章

在django中渲染模板后如何在我的视图中调用一些逻辑

如何加入相关对象并在模板中渲染它们?

如何在我的 Spring Boot Security OAuth2 应用程序中仅为某些类启用 OAuth2?

如何在 Forge Autodesk 中仅显示特定视图

如何在我的模板中使用 Django DeleteView

如何在 thymeleaf 模板中表示 2 个模型对象