我有两个模型:adverisement_campaign和advertisement_view(视图日志)。必须每隔X天一次向用户显示每个广告活动。因此,广告系列模型具有天数字段。 我需要选择未向用户显示此广告系列的天数的广告系列。并从此列表中获取随机广告系列以显示用户。 所以,我写的查询,选择广告系列,尚未见过。
user_campaigns = AdvertShowEvent.objects.filter(user=user)
.values('advertisement_id')\
.annotate(datetime_last=Max('datetime'))\
.values_list('advertisement_id')
但现在我需要过滤广告系列,以显示为每家公司指定的用户广告系列,这些广告系列没有超过X天。像这样的东西
user_campaigns = AdvertShowEvent.objects.filter(user=user, **datetime_last__gte=asdvertisement.days_between_shows**)
.values('advertisement_id')\
.annotate(datetime_last=Max('datetime'))\
.values_list('advertisement_id')
如何使用Django ORM进行过滤?
答案 0 :(得分:0)
应该做的事情:
user_campaigns = AdvertShowEvent.objects.filter(user=user,
**datetime_last__gte=datetime.datetime.now() - datetime.timedelta(days=days_between_shows))
.values('advertisement_id')\
.annotate(datetime_last=Max('datetime'))\
.values_list('advertisement_id')