Действие администратора Django с промежуточной страницей обрабатывает только первые 100 вариантов выбора
У меня есть действие администратора, в котором я выбираю исполнителей, а затем выбираю электронную почту, которую я хочу им отправить. Если я отфильтрую исполнителей, а затем выберу всех, я получу около 1000 исполнителей. Если я отправлю письмо, оно будет отправлено только первым 100.
Это мое действие:
def send_email(self, request, queryset):
form = None
if 'apply' in request.POST:
form = ChooseEmailForm(request.POST)
if form.is_valid():
email = form.cleaned_data['email']
htmlMessage = email.htmlMessage
for artist in queryset:
send_single_email(email, artist)
self.message_user(request, _('Successfully emailed \'%s\' to the selected artists.') % (email))
return HttpResponseRedirect(request.get_full_path())
if not form:
form = ChooseEmailForm(initial={'_selected_action': request.POST.getlist(ACTION_CHECKBOX_NAME)})
return render(request, 'admin/send_email.html', {'artists': queryset, 'email_form': form})
Это моя форма:
class ChooseEmailForm(forms.Form):
_selected_action = forms.CharField(widget=forms.MultipleHiddenInput)
email = forms.ModelChoiceField(queryset=Email.objects.all(), label='')
а это мой html:
{% extends "admin/base_site.html" %}
{% block content %}
<p>Select the email to send:</p>
<form action="" method="post">
{% csrf_token %}
{{ email_form }}
<p>De chosen email will be send to the following artists:</p>
<ul>{{ artists|unordered_list }}</ul>
<input type="hidden" name="action" value="send_email" />
<input type="submit" name="apply" value="Send email" />
</form>
{% endblock %}
В промежуточной форме написано: "Выбранный e-mail будет отправлен следующим исполнителям:" и перечислены все 1000 исполнителей. Но когда я подаю заявку, она отправляется только первым 100.
Есть идеи?
Я думаю, что это связано с почтовым менеджером, который вы используете в проекте.
Я предполагаю, что это Gmail !
Согласно лимитам отправки в Google Workspace, адресаты одного сообщения, отправляемого по SMTP (пользователями POP или IMAP) или через Gmail API, ограничены до 100. (Адреса в полях To, Cc и Bcc одного сообщения электронной почты. Включая электронные письма, отправленные с помощью smtp-relay.gmail.com или smtp.gmail.com )
Я думаю, что это вопрос (если Gmail, конечно).