我是Django的新手。我在django项目中有两个对象:Transaction和Item。项可以有许多事务对象。事务具有日期时间和项目字段。如何编写django查询来获取在过去20天内没有任何交易的项目?
class Item(models.Model):
name = models.CharField(max_length=80)
class Transaction(models.Model):
date_time = models.DateTimeField(default=timezone.now)
item = models.ForeignKey(Item)
提前谢谢。
假设您的模型是:
class Item(models.Model):
name = models.CharField(max_length=100)
class Transaction(models.Model):
item = models.ForeignKey(Item, on_delete=models.CASCADE)
created_at = models.DateTimeField()
您可以执行以下查询:
from datetime import datetime, timedelta
Item.objects.distinct().exclude(transaction__created_at__gte=datetime.now() - timedelta(days=20))
此查询将查找过去20天内有交易的项目,然后显示其余项目(过去20天没有任何交易(。
在Django Shell上试试这个。打开外壳:python manage.py shell