Django 从查询集中筛选出多封电子邮件

Django 从查询集中筛选出多封电子邮件,django,email,django-queryset,Django,Email,Django Queryset,我正试图从查询集中过滤出多封电子邮件,以防止我们的员工电子邮件影响任何出口。我在settings.py中有以下内容: EMAIL_FILTERS = ['email1', 'email2'] 我正试图用它在下面的查询中过滤掉我们电子邮件中的任何条目: EMAIL_FILTERS = getattr(settings, 'EMAIL_FILTERS') campaigns = CampaignsSignup.objects.filter(created_date__gte=self._get_

我正试图从查询集中过滤出多封电子邮件,以防止我们的员工电子邮件影响任何出口。我在settings.py中有以下内容:

EMAIL_FILTERS = ['email1', 'email2']
我正试图用它在下面的查询中过滤掉我们电子邮件中的任何条目:

EMAIL_FILTERS = getattr(settings, 'EMAIL_FILTERS')

campaigns = CampaignsSignup.objects.filter(created_date__gte=self._get_start_date(dte), 
                                    created_date__lte=self._get_end_date(dte)).order_by('-created_date')
然而,在尝试Q和排除之后,我似乎无法让它工作。我还应该注意,我希望能够使用Ends,因为一些员工正在使用他们的个人电子邮件地址,所以目前这是不可行的


谢谢。

我使出浑身解数,终于想出了一个办法。将_in与Q一起使用可正确过滤掉已包含在设置中的电子邮件过滤器列表中的电子邮件

campaigns = CampaignsSignup.objects.filter(~Q(email__in=SAVCHAMP_EMAIL_FILTERS), created_date__gte=self._get_start_date(dte), 
                                    created_date__lte=self._get_end_date(dte)).order_by('-created_date')

我知道您已经找到了解决方案,但通常的方法是使用
排除

campaigns = CampaignsSignup.objects.filter(
                created_date__gte=self._get_start_date(dte), 
                created_date__lte=self._get_end_date(dte)
            ).order_by('-created_date').exclude(email__in=SAVCHAMP_EMAIL_FILTERS)

是否要根据电子邮件域筛选条目?不幸的是,现在必须是特定的电子邮件。我只是幸运地得到了答案,所以别担心:)