Ich versuche, einen Newsletter zu implementieren und ein Auswahlfeld zu meiner UserProfile-Klasse hinzuzufügen, damit Benutzer auswählen können, ob sie einen Newsletter erhalten möchten oder nicht:Wie kann ich nur bestimmten Benutzern eine Newsletter-Mail (Django) senden?
class UserProfile(models.Model):
user = models.OneToOneField(User)
YES = 'YS'
NO = 'NO'
NEWS_CHOICES = (
(YES, 'Yes'),
(NO, 'No'),
)
newsletter = models.CharField(max_length=2, choices= NEWS_CHOICES, default=NO)
Und ich habe diese Ansicht einen Newsletter an die Benutzer zu senden, die einen Newsletter (ausgewählt 'Ja') erhalten möchten:
@user_passes_test(lambda u: u.is_superuser)
def newsletter_form(request):
if request.method == 'POST':
form = NewsletterForm(request.POST or None, request.FILES or None)
if form.is_valid():
reader = UserProfile.objects.filter(newsletter='YS')
instance = form.save(commit=False)
instance.save()
subject = 'This is the Newsletter!'
message = 'Hello!'
from_email = settings.EMAIL_HOST_USER
to_list = [reader.user.email]
html_message = loader.render_to_string('gaestebuch/newsletter.html')
send_mail(subject, message, from_email, to_list, fail_silently = True, html_message=html_message)
return redirect('gaestebuch:index')
else:
print form.errors
else:
form = NewsletterForm()
context = {'form': form}
return render(request, 'gaestebuch/newsletter_form.html', context)
ich struggeling mit:
to_list = [reader.user.email]
Der Fehler Ich erhalte ist:
'QuerySet' object has no attribute 'user'
ich froh wäre, wenn jemand mich an dieser Stelle helfen könnte :)
Vielen Dank für Ihre Hilfe! – Dannad