如何过滤比较来自同一Django模型的两个信息

发布于 2025-02-12 03:01:14 字数 518 浏览 0 评论 0原文

我有这样的医学验证模型:

class MedicalCertificate(models.Model):
    needs_leave = models.BooleanField()
    date = models.DateTimeField()
    days_off = models.IntegerField()

我需要过滤活跃的医疗证书,即:date + days_off> = dateTime.now()

我尝试使用f(),但不是成功。例如:

from django.db.models import F

certificates = {
    'needs_leave': True,
    'days_off__gte': datetime.datetime.now() - F('date')
}

queryset = MedicalCertificate.objects.filter(**certificates)

有什么想法如何进行?

I have a MedicalCertificate model like this:

class MedicalCertificate(models.Model):
    needs_leave = models.BooleanField()
    date = models.DateTimeField()
    days_off = models.IntegerField()

And I need to filter the active medical certificates, which are: date + days_off >= datetime.now()

I tried to use F(), but not success. Ex.:

from django.db.models import F

certificates = {
    'needs_leave': True,
    'days_off__gte': datetime.datetime.now() - F('date')
}

queryset = MedicalCertificate.objects.filter(**certificates)

Any idea how to proceed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦言归人 2025-02-19 03:01:14

您需要过滤那些大于当前日期的医疗证书,因此您也可以在几天内查询:

基本条件:

days_off >= date.today().day - date__day

您可以这样查询:

from datetime import date
from django.db.models import F,Q

MedicalCertificate.objects.filter(
        Q(needs_leave=True) & Q(days_off__gte=date.today().day - F('date__day')))

You need to filter those medical certificates, which are greater than current date, so you can also query through days:

Basic Condition:

days_off >= date.today().day - date__day

You can query like this:

from datetime import date
from django.db.models import F,Q

MedicalCertificate.objects.filter(
        Q(needs_leave=True) & Q(days_off__gte=date.today().day - F('date__day')))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文