Я хочу отправить электронное письмо пользователю на основании его / ее ответа. Как мне установить контекст, чтобы я мог получить доступ к метке, help_text и значению каждого поля в моем шаблоне.
forms.py
class ResponseForm(ModelForm):
def __init__(self, *args, **kwargs):
user = kwargs.pop('user', None)
super(ResponseForm, self).__init__(*args, **kwargs)
if user:
for key, value in question_answer_dict.items():
self.fields[key].help_text = getattr(user, key + '-HelpForThisUser')
class Meta:
model = ResponseModel
exclude = ('author', 'submit_count')
views.py
@login_required
def ResponseFormView(request):
def mail():
subject = 'Thank you!'
email_from = settings.EMAIL_HOST_USER
recipient_list = [request.user.email, ]
html_message = render_to_string(
'mail_template.html', {'context': suitable_context})
plain_message = strip_tags(html_message)
send_mail(subject, plain_message, email_from,
recipient_list, html_message=html_message)
if request.method == "POST":
form = ResponseForm(request.POST)
if form.is_valid():
submission = form.save(commit=False)
submission.author = request.user
submission.save()
mail()
return render(request, 'thanks.html', {})
else:
form = ResponseForm(user=request.user)
return render(request, 'response_tem.html', {'form': form})
Примечание: у каждого пользователя могут быть разные вопросы и разные help_texts.