我有两个模型:adverisement_campaign和advertise_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进行此过滤?
最佳答案
应该采取以下措施:
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')
关于mysql - 通过Django ORM中的相关模型字段过滤模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24276972/