我有两个模型: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/

10-12 15:23