Django Queryset-过滤器“;在结束日期之前“;如果存在
我有一个模型,过去没有DateField,现在我用“south”来迁移它;我在上面加了“开始日期”和“结束日期”: 对于数据库中的现有记录(以及未来记录),开始日期默认设置为今天的日期,旧记录没有结束日期,如果未指定,未来记录可能有空白结束日期 我的需要:给定日期:Django Queryset-过滤器“;在结束日期之前“;如果存在,django,date,django-queryset,django-south,Django,Date,Django Queryset,Django South,我有一个模型,过去没有DateField,现在我用“south”来迁移它;我在上面加了“开始日期”和“结束日期”: 对于数据库中的现有记录(以及未来记录),开始日期默认设置为今天的日期,旧记录没有结束日期,如果未指定,未来记录可能有空白结束日期 我的需要:给定日期: 从数据库中筛选对象,如果对象同时具有开始日期和结束日期(例如:MyModel.objects.Filter(开始日期=DATE,结束日期=DATE),则该日期介于开始日期和结束日期之间 从数据库中筛选对象,如果对象的结束日期为空(
- 从数据库中筛选对象,如果对象同时具有开始日期和结束日期(例如:
),则该日期介于开始日期和结束日期之间MyModel.objects.Filter(开始日期=DATE,结束日期=DATE
- 从数据库中筛选对象,如果对象的结束日期为空(或空),则该日期比开始日期新
我应该执行哪个查询集来满足我的需要。我正在尝试使用Q complexe查找;我会在完成时告诉你。@gwynbleId MyModel.objects.filter((Q(开始日期=今天)和(Q(结束日期=NULL=真)| Q(结束日期=结束)))我正在尝试使用Q complexe查找;我会在完成时告诉你。@gwynbleId MyModel.objects.filter((Q(开始日期=今天)和(Q(结束日期=真)Q(结束日期=结束)))
class MyModel(models.Model):
my_attribute = models.CharField(max_length=100)
start_date = models.DateField(default = date.today)#Newly added field
end_date = models.DateField(blank=True, null=True)#Newly added field