获取最近3个月未交易的对象

时间:2018-11-13 08:51:24

标签: python django

我是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)

先谢谢了。

1 个答案:

答案 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