这是我的模特
class Journal(models.Model):
Start_Date = models.DateField(default=datetime.date(2018,4,1),blank=False)
End_Date = models.DateField(default=datetime.date(2019,3,31),blank=False)
Date = models.DateField()
By = models.ForeignKey(ledger1,on_delete=models.CASCADE,related_name='Debitledgers')
To = models.ForeignKey(ledger1,on_delete=models.CASCADE,related_name='Creditledgers')
Debit = models.DecimalField(max_digits=10,decimal_places=2)
Credit = models.DecimalField(max_digits=10,decimal_places=2)
我要过滤日记帐模型的“开始日期”和“结束日期”中的日记帐对象...
我的意思是说日记中的“日期”必须在日记的“开始日期”和“结束日期”之间...
这可能是我一个愚蠢的问题...但是,由于我正在学习Django,对我来说这并不容易...
谁能告诉我该怎么做?
提前谢谢
答案 0 :(得分:3)
尝试像这样使用F expression
:
Journal.object.filter(journals__Start_Date__gt=F('Date'), journals__End_Date__lt=F('Date'))
实际上,目前尚不清楚Selectdate
模型的作用。如果仅出于过滤目的创建它,则可以将其删除并在不使用它的情况下使用ORM:
Journal.object.filter(Date__gt=some_date_start, Date__lt=some_date_end)
对于更新的问题,您可以执行以下操作:
Journal.object.filter(Start_Date__gte=F('Date'), End_Date__lte=F('Date'))