Как исключить символы 'queryset' при использовании django sqlite orm
Я хочу отправлять почту многим пользователям с помощью django sendmail.
Я использую orm в sqlite3 для получения списка получателей, хранящихся в базе данных.
Однако результат orm включает 'queryset', поэтому почта не может быть отправлена. Есть ли способ исключить 'queryset' из результатов orm?
как есть
Я хочу
views.py
def send_form(request):
if request.method == 'POST':
selected_target = request.POST['target']
target = contact.objects.filter(target=selected_target).values_list('email')
return render(request, 'view/send_form.html', {'target': target})
def send_success(request):
if request.method == 'POST':
subject = request.POST['subject']
recipient = request.POST['email']
message = request.POST['message']
send_mail(
subject,
message,
recipient,
[recipient],
fail_silently=False,
)
return render(request, 'view/send_success.html')
Queryset
возвращает вам все (многие) применимые результаты, если вы хотите только one
электронную почту, вместо filter
используйте get
,
target_email = contact.objects.get(target=selected_target).email
но при queryset
(много писем) вы можете отправить на каждое письмо в списке queryset
target_emails = contact.objects.filter(target=selected_target)
for each_email in target_emails:
target_email = each_email.email
#this will output your needed email
print(target_email)
#and later do logic with target_email to send mail on it