Отсутствие данных из шаблона в представление

Я создал форму и пытаюсь получить данные из представления, чтобы отправить их по электронной почте. Когда я отображаю страницу, я получаю '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']

Вернуться на верх