0

従業員の電子メールがエクスポートに影響を与えないようにするために、クエリセットから複数の電子メールを除外しようとしています。私はsettings.pyに次のものがあります:

EMAIL_FILTERS = ['email1', 'email2']

これを使用して、次のクエリの電子メールでDB内のエントリを除外しようとしています。

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を使用できるようにしたいと思います。

ありがとう。

4

2 に答える 2

1

解決策を見つけたようですが、これを行う通常の方法は次のexcludeとおりです。

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)
于 2012-07-02T09:59:34.567 に答える
0

すべてを投げ出した後、私はそれを行う方法に出くわしました。Q で __in を使用すると、設定の email_filter リストに含まれている電子メールが正しく除外されます。

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')
于 2012-07-02T09:49:38.220 に答える