我是Django的新手。我在Django项目中有两个对象:交易和项目。物料可以有许多交易对象。交易包含 date_time 和 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)
先谢谢了。
答案 0 :(得分:2)
假设您的模型是:
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