繁体   English   中英

如何查找在给定日期范围内创建的对象?

[英]How to find objects created within given date range?

我有一个模型:

class Customer(models.Model):
    Name = models.TextField(blank=False)
    Surname = models.TextField(blank=False)
    PhoneNumber = models.TextField()
    Address = models.TextField()
    SendSms = models.BooleanField(default=True)
    SendEmail = models.BooleanField(default=True)
    Email = models.TextField()
    Created = models.DateField(auto_now_add=True)

    @classmethod
    def create(cls, name, surname, phoneNumber, address , sendSms, sendEmail, email):
        customer = cls(Name=name, Surname=surname, PhoneNumber=phoneNumber
                        , Address=address, SendSms=sendSms, SendEmail=sendEmail
                        , Email=email)
        customer.save()
        return customer

在视图中,我想查找在给定日期范围内创建的客户。 假设7天。

下面的代码:

def RecentCustomers(request):
    return render_to_response("Customer/AllCustomers.html", {
        "customers": Customer.objects.filter(
            date__range=[datetime.date.today() - datetime.timedelta(days=7), datetime.date.today()])})

得到:

无法将关键字“日期”解析为字段。 选项包括:地址,创建的电子邮件,姓名,电话号码,SendEmail,SendSms,姓氏,ID,宠物

错误。 我也尝试过:

def RecentCustomers(request):
    return render_to_response("Customer/AllCustomers.html", {
        "customers": Customer.objects.filter(Created >= datetime.date.today() - datetime.timedelta(days=7)})

但这给出了:

无效的语法

错误。 我该如何过滤日期?

Customer.objects.filter(Created__gte=datetime.date.today() - datetime.timedelta(days=7))

顺便说一句,最好使用lowercase名称创建模型字段,模板名称,目录,函数等。


from django.shortcuts import render

def recent_customers(request):
    customers = Customer.objects.filter(created__gte=datetime.date.today() - datetime.timedelta(days=7))
    return render(request, "customer/all_customers.html", {"customers": customers})

您可能想看看有关Python中命名约定规则的样式指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM