Отсутствие данных из шаблона в представление
Я создал форму и пытаюсь получить данные из представления, чтобы отправить их по электронной почте. Когда я отображаю страницу, я получаю 'keyerror'. Я распечатал значения, которые получаю из формы, и заметил, что не получаю ввод 'phone_number'. Я пытаюсь понять, куда девается ввод номера телефона
Вот мой код
Вот мой файл views.py
from django.shortcuts import render, redirect
from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse
from .forms import ContactForm
# Create your views here.
def index(request):
return render(request,'pages/index.html')
def projects(request):
return render(request, 'projects/projects.html')
def about(request):
return render(request, 'pages/about.html')
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
print(form)
subject = "Website Inquiry"
body = {
'full_name': form.cleaned_data['full_name'],
'email_address': form.cleaned_data['email_address'],
'phone_number': form.cleaned_data['phone_number'],
'message':form.cleaned_data['message'],
}
message = "\n".join(body.values())
#try:
# send_mail(subject, message, 'admin@example.com', ['admin@example.com'])
#except BadHeaderError:
# return HttpResponse('Invalid header found.')
return redirect ("mainpage:index")
form = ContactForm()
return render(request, "pages/contact.html", {'form':form})
Надеюсь, вы сможете помочь
ContactForm
#Create fields in a dinamic way
# To retrieve the form information
from django import forms
from phonenumber_field.modelfields import PhoneNumberField
class ContactForm(forms.Form):
full_name = forms.CharField(label = 'full_name',max_length=50)
email_address = forms.EmailField(label = 'email_address',max_length=150)
phone_number = PhoneNumberField(unique = True, null = False, blank = False)
message = forms.CharField(label = 'message',widget = forms.Textarea, max_length=2000)
Модель контакта
from django.db import models
from django.forms import ModelForm
from phonenumber_field.modelfields import PhoneNumberField
class Project(models.Model):
image = models.ImageField(upload_to='imagenes/',verbose_name='Imagen',null=True)
description = models.TextField(max_length=200)
title = models.CharField(max_length=50)
link = models.CharField(max_length=50)
def __str__(self):
return self.title
def delete(self, using=None,keep_parents=False):
self.image.storage.delete(self.image.name)
super().delete()
class Contact(models.Model):
full_name = models.CharField(max_length=50)
email_address = models.EmailField(max_length=150)
phone_number = PhoneNumberField(unique = True, null = False, blank = False)
message = models.CharField(max_length=2000)
def __str__(self):
return self.name
class ContactForm(ModelForm):
class Meta:
model = Contact
fields = ['full_name', 'email_address', 'phone_number','message']