Форма Django не передается в базу данных

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


models.py

from django.db import models

class Paitent(models.Model):

pname = models.CharField(max_length=50)
age = models.IntegerField()
gender = models.CharField(max_length=50)
address = models.CharField(max_length=50)
telephone = models.IntegerField()
mHistory = models.CharField(max_length=500, blank=True, null=True)   


def __str__(self):
    return self.pname

class Visit(models.Model):
paitent = models.ForeignKey(Paitent,null=True ,on_delete=models.CASCADE, blank=True)
toothNumber = models.CharField('involved tooth', max_length=120)
cComplaint = models.CharField('chief complaint',max_length=120)
sASymptoms = models.CharField('signs and symptoms',max_length=120)
diagnosis = models.CharField(max_length=120)
procedure = models.CharField(max_length=120)
notes = models.TextField(blank=True)
currentVisit = models.DateTimeField(
    'time and date of current visit', null=True)
nextAppointment = models.DateTimeField()

def __str__(self):
    return self.toothNumber

forms.py

 from django import forms
 from .models import Paitent
 from .models import Visit


 class PaitentForm(forms.ModelForm):
    class Meta:
         model = Paitent
         fields = ['pname', 'age', 'gender', 'address', 'telephone']
    
 class VisitForm(forms.ModelForm):
    class Meta:
         model = Visit
         fields = ['paitent', 'toothNumber', 'cComplaint',
              'sASymptoms', 'diagnosis', 'procedure',
              'notes', 'currentVisit', 'nextAppointment']

views.py

from django.shortcuts import render
from .models import Paitent
from .models import Visit
from .forms import PaitentForm
from .forms import VisitForm
import calendar
from calendar import HTMLCalendar


def homePage(request):
    all_paitents = Paitent.objects.all
    return render (request, 'homePage.html',{'all':all_paitents})

def newpaitent(request):
    if request.method == 'POST':
        form = PaitentForm(request.POST or None)
        if form.is_valid():
           form.save()
    return render(request, 'newpaitent.html', {})
        
else:
    return render(request, 'newpaitent.html', {})


def addVisit(request):
    if request.method == 'POST':
        form = VisitForm(request.POST or None)
        if form.is_valid():
           form.save()
        return render(request, 'addVisit.html', {})

else:
    return render(request, 'addVisit.html', {})

спасибо заранее

Мне кажется, что вы не указали контекст в представлении:

Вместо этого:

def addVisit(request):
    if request.method == 'POST':
        form = VisitForm(request.POST or None)
        if form.is_valid():
           form.save()
        return render(request, 'addVisit.html', {})

    else:
         return render(request, 'addVisit.html', {})

попробуйте это:

     def addvisit(request):
        if request.method == 'POST':
            form = VisitForm(request.POST)
            if form.is_valid():
               try:
                   form.save()
                   return redirect("/") #Add your project route here where you want to go after adding visitors
               except:
                    pass
        else:
             form = VisitForm()  
        return render(request, 'addvisit.html', {'form':form})
            

Если форма не действительна, она не будет зафиксирована в базе данных.

Выведите ошибки формы, это должно помочь вам понять, почему форма не сохраняется

if form.is_valid():
          form.save()
else:
          print(form.errors)
Вернуться на верх