Django send_mail () с FormView - PullRequest
       11

Django send_mail () с FormView

0 голосов
/ 27 декабря 2018

Я ищу способ отображения всех отправленных данных формы в сообщении с помощью функции send_mail ().Я думаю, что должен быть способ, которым я мог бы визуализировать все представленные данные формы вроде {'form': form} вместо вызова всех различных моделей.Любая помощь, показывающая мне, как рефакторинг, это очень ценится.

class PMPIndex(ListView, FormView, SuccessMessageMixin):
template_name = 'pmp/index.html'
model = Post

form_class = CustomProjectBuildRequestForm
success_url = reverse_lazy('home')
success_message = "Form successfully submitted!"

def form_valid(self, form):
    form.save()

    context = {
        'first_name': form.cleaned_data.get('first_name'),
        'last_name': form.cleaned_data.get('last_name'),
        'email': form.cleaned_data.get('email'),
        'phone': form.cleaned_data.get('phone_number'),
        'zip_code': form.cleaned_data.get('zip_code'),
        'project_title': form.cleaned_data.get('project_name'),
        'project_description': form.cleaned_data.get('project_description'),
        'contact_method': form.cleaned_data.get('preferred_contact_method'),
    }

    template = get_template('custom_project_request_email_template.html')
    content = template.render(context)

    send_mail(
        'New Custom Project Request',
        html_message=content,
        message=content,
        from_email=context['email'],
        recipient_list=['kyle@postmyproject.com'],
        fail_silently=False,
    )

    return super(PMPIndex, self).form_valid(form)
...