Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在Django ORM中按相关模型字段筛选模型_Mysql_Django - Fatal编程技术网

Mysql 在Django ORM中按相关模型字段筛选模型

Mysql 在Django ORM中按相关模型字段筛选模型,mysql,django,Mysql,Django,我有两个模型:广告活动和广告视图(视图日志)。每个广告活动必须至少每X天向用户显示一次。所以,活动模型有一个带有天数的字段。 我需要选择尚未向用户显示超过此活动天数的活动。并从此列表中获取随机活动以显示用户。 所以,我写了一个查询,其中选择了活动,但还没有看到 user_campaigns = AdvertShowEvent.objects.filter(user=user) .values('advertiseme

我有两个模型:广告活动和广告视图(视图日志)。每个广告活动必须至少每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')