admin.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:heltour 作者: cyanfish 项目源码 文件源码
def bulk_email_view(self, request, object_ids):
        season_players = SeasonPlayer.objects.filter(id__in=[int(i) for i in object_ids.split(',')]).select_related('season', 'player').nocache()
        seasons = {sp.season for sp in season_players}
        for season in seasons:
            if not request.user.has_perm('tournament.bulk_email', season.league):
                raise PermissionDenied

        if request.method == 'POST':
            form = forms.BulkEmailForm(len(season_players), request.POST)
            if form.is_valid() and form.cleaned_data['confirm_send']:
                email_addresses = {sp.player.email for sp in season_players if sp.player.email != ''}
                email_messages = []
                for addr in email_addresses:
                    message = EmailMultiAlternatives(
                        form.cleaned_data['subject'],
                        form.cleaned_data['text_content'],
                        settings.DEFAULT_FROM_EMAIL,
                        [addr]
                    )
                    message.attach_alternative(form.cleaned_data['html_content'], 'text/html')
                    email_messages.append(message)
                conn = mail.get_connection()
                conn.open()
                conn.send_messages(email_messages)
                conn.close()
                self.message_user(request, 'Emails sent to %d players.' % len(season_players), messages.INFO)
                return redirect('admin:tournament_seasonplayer_changelist')
        else:
            form = forms.BulkEmailForm(len(season_players))

        context = {
            'has_permission': True,
            'opts': self.model._meta,
            'site_url': '/',
            'original': 'Bulk email',
            'title': 'Bulk email',
            'form': form
        }

        return render(request, 'tournament/admin/bulk_email.html', context)

#-------------------------------------------------------------------------------
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号