Я сделал контактную форму, используя 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.')