カスタム許可を持つユーザーを照会してリストに入れるsend_mail()の受信者リストを作成しようとしています。目的は、Django管理者を使用して、ユーザーがこの電子メールを受信するこの許可を持つグループにユーザーを配置することを容易にします。私はこれを受け取っていますmore than one row returned by a subquery
。私はいくつかの子モデルを持っているmodelBaseを使用していますので、カスタムパーミッションは複数のモデルにそれ自身を割り当てます。このエラーをクリアし、必要な受信者リストを生成するためにコードを調整するにはどうすればよいですか。カスタム許可に基づいてsend_mail()の受信者リストを構築するときのDjango SubQueryエラー
ここに私のmodels.pyとviews.pyがあります。私は書式設定がオフの場合、私は不必要な情報で質問を混乱させたくないとお詫び申し上げます。 models.py:お時間を
class StoreNightlyReportsBase(models.Model):
store_nightly_report = models.ForeignKey(StoreNightlyReport)
no_new_item = models.BooleanField(verbose_name="Check if No New Items", default=False)
customer = models.CharField(verbose_name='Customer Name', max_length=20, null=True, blank=True)
class Meta:
abstract = True
permissions = (('nightly_reports','Nightly Reports'),
)
class StoreNightlyReportsNewLoan(StoreNightlyReportsBase):
...
class StoreNightlyReportsRenewals(StoreNightlyReportsBase):
...
views.py
class StoresNightlyReportsNewLoansCreate(CreateView):
...
def get_form(self, form_class=None):
...
def get_context_data(self, **kwargs):
...
def form_valid(self, form):
...
perm = Permission.objects.filter(codename='nightly_reports')
users = User.objects.filter(Q(groups__permissions=perm) | Q(user_permissions=perm)).distinct()
recipients = list(i for i in users.values_list('email', flat=True) if bool(i))
html_email = render_to_string('reports/email.html', {
'object': self.object,
'user': self.request.user,
})
send_mail(
'Nightly Numbers',
'Here is the message.',
'[email protected]',
[recipients],
html_message=html_email,
fail_silently=False,
)
return super(StoresNightlyReportsNewLoansCreate, self).form_invalid(form)
感謝。