gpt4 book ai didi

python - 丢弃 Django 查询集中的旧元素

转载 作者:行者123 更新时间:2023-12-01 05:13:13 28 4
gpt4 key购买 nike

我的数据库中有一个元素列表,每个元素都有自己的日期时间字段。我想丢弃比今天更旧的元素,这意味着我只会看到 future 的元素。

这是我当前的代码:

def get_dates_approved(request):
user = request.user
alreadyRated = [x.date.id for x in Ratings.objects.filter(rator=user)]
dates = Dating.objects.filter((Q(creator=user) | Q(assignee=user)) & Q(accepted=True)) \
.exclude(id__in=alreadyRated)
return dates

定义日期的字段是这个:

finalDate = models.DateTimeField(default=datetime.now)

最佳答案

Django 查询集具有字段查找功能。

来自 Django 文档,

Field lookups are how you specify the meat of an SQL WHERE clause. They’re specified as keyword arguments to the QuerySet methods filter(), exclude() and get().

有许多内置查找可用,例如 exactiexactcontainsgtgteltlte 等等。更多信息请引用Django queryset field lookups .

回答你的问题

dates = Dating.objects.filter((Q(creator=user) | Q(assignee=user)) & Q(accepted=True)) \
.exclude(id__in=alreadyRated)

应该是

dates = Dating.objects.filter((Q(creator=user) | Q(assignee=user)) & Q(accepted=True)) \
.exclude(id__in=alreadyRated, finalDate__lt=datetime.today())

所以你的函数应该看起来像

from datetime import datetime

def get_dates_approved(request):
user = request.user
alreadyRated = [x.date.id for x in Ratings.objects.filter(rator=user)]
dates = Dating.objects.filter((Q(creator=user) | Q(assignee=user)) & Q(accepted=True)) \
.exclude(id__in=alreadyRated, finalDate__lt=datetime.today())

关于python - 丢弃 Django 查询集中的旧元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23765348/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com