class FormEmail(forms.Form): email = forms.EmailField(widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Email'})) subject = forms.CharField(required=False, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Subject'})) email_note = forms.CharField(widget=forms.Textarea, required=False) include_price = forms.BooleanField(required=False, widget=forms.CheckboxInput(attrs={'class': 'form-check-input',}))
from django.core.mail import send_mail from .forms import FormEmail
Update the existing fossil view. Inside the function add:
if request.method == "POST" and "send_email" in request.POST: form_send_email = FormEmail(request.POST) if form_send_email.is_valid(): text_subject = f'{fossil.fossil_name}' subject = form_send_email.cleaned_data['subject'] if subject: text_subject = f'{fossil.fossil_name} - {subject}' text_price = '' price = form_send_email.cleaned_data['include_price'] if price and fossil.fossil_value: text_price = f'{fossil.fossil_value}' text_note = '' note = form_send_email.cleaned_data['email_note'] if note: text_note = f'{note}' text_description = f'{fossil.fossil_name} ' if fossil.fossil_description_short: text_description += fossil.fossil_description_short if fossil.fossil_description_detailed: text_description += fossil.fossil_description_detailed html = f''' {text_subject} {text_price} {text_note} {text_description} ''' from_email = "squirrelsandbeavers@gmail.com" email = form_send_email.cleaned_data['email'] to_email = (email, ) try: send_mail(subject=text_subject, message="", from_email=from_email, recipient_list=to_email, html_message=html) messages.success(request, f"Email to {email} sent successfully.") except Exception as e: messages.error(request, f"Error, email not sent. {e}") return redirect('fossil-selected', pk=fossil.id) else: messages.error(request, f"Error, email not sent.") return redirect('fossil-selected', pk=fossil.id) else: form_send_email = FormEmail() return render(request, 'app_fossils/fossil.html', { ... 'form_send_email': form_send_email, ... })
{fossil.fossil_value}
{note}
Send fossil ▼ {% csrf_token %} {{ form_send_email.email }} {{ form_send_email.subject }} {{ form_send_email.email_note }} {{ form_send_email.include_price }} Include price Send
{{ form_send_email.email }}
{{ form_send_email.subject }}
{{ form_send_email.email_note }}
{{ form_send_email.include_price }} Include price