Отправка контактной формы в базу данных PostgreSQL и по электронной почте с использованием Django - PullRequest
0 голосов
/ 11 ноября 2019

Я сделал контактную форму, используя Django, я хотел бы, чтобы информация, введенная в контактную форму, была отправлена ​​по электронной почте и в базу данных. Код для отправки информации на идентификатор электронной почты приведен ниже, что успешно, но у меня возникают проблемы при добавлении кода для сохранения его в базе данных PostgreSQL. Я новичок в Python, поэтому любая помощь будет очень ценится. Спасибо

urls.py

from django.urls import path
from.import views

urlpatterns = [
    path('email/', views.email, name='email'),
    path('success/', views.success, name='success')]

model.py

from django.db import models

class Contact(models.Model):
    what_about = models.CharField(required=True)
    contact_email = models.EmailField(required=True, max_length=250)
    content = models.CharField(
        required=True,
        widget=models.TextField)
    Name = models.CharField(required=True)
    Phone_Number = models.CharField(required=True)

forms.py

from django import forms
from .models import Contact

class ContactForm(forms.ModelForm):
    class Meta:
        model = Contact
        Fields = ('what_about', 'contact_email', 'content', 'Name', 'Phone_Number')

views.py

from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, redirect
from .forms import ContactForm


def email(request):

    if request.method == 'GET':
        form = ContactForm()
    else:
        form = ContactForm(request.POST)
        if form.is_valid():
            form.save()
            cd = form.cleaned_data
            subject = form.cleaned_data['what_about']
            from_email = form.cleaned_data['contact_email']
            message = 'contact_email: "{}"\n Phone_Number: "{}"\n Name: "{}"\n content: "{}"'.format(cd['contact_email'],
                                                                                                     cd['Phone_Number'],
                                                                                                     cd['Name'],
                                                                                                     cd['content'])
        try:

            send_mail(subject, message, from_email, yourmail@gmail.com, fail_silently='False')
        except BadHeaderError:
            return HttpResponse('Invalid header found.')
        return redirect('success')

    return render(request, "email.html", {'form': form})

def success(request):
    return HttpResponse('Success! Thank you for your message.')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...