【问题标题】:Don’t forget to enter notes” - If they have not enter note by today and enter note the prior day不要忘记输入注释” - 如果他们今天还没有输入注释并在前一天输入注释
【发布时间】:2021-12-12 22:53:48
【问题描述】:

我有两张桌子 成员表和 Daily_Notes 表。

class Member(models.Model):
    name = models.Charfield()

每日笔记表

class DailyNotes(models.Model):
    member= models.Foreignkey('Member')
    note=models.Charfield()
    date=models.Datetimefield(default="")

每日记录表包含每日条目

我需要过滤数据,如果用户今天还没有输入注释并输入前一天。

【问题讨论】:

    标签: django postgresql django-models django-rest-framework django-views


    【解决方案1】:

    您可以检索在前一天而非当天填写了DailyNotes 项目的Members:

    from datetime import date, timedelta
    
    Member.objects.filter(
        dailynotes__date__date=date.today() - timedelta(days=1)
    ).exclude(
        dailynotes__date__date=date.today()
    )

    【讨论】:

    • 谢谢,能解释一下查询吗?
    • @sarathsathyan:我们为过滤器创建了一个LEFT OUTER JOIN,该过滤器将查看昨天用date 编写的该成员是否有dailynotes 记录,我们排除(通过子查询完成) Members 今天写了一个dailynotes 对象。
    • 非常感谢@willemvanonsem,您能否推荐一些学习 django 高级查询的最佳资源?
    • @sarathsathyan:Django 文档的making queries 解释了如何构建查询
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多