Создание экземпляра модели

У меня есть две модели, (Доктор и Пациент), модель Доктор является родительской моделью, Как я могу сделать так, чтобы поле (Service_doctor) было экземпляром модели Доктор, чтобы я мог получить имя доктора в модели Пациент, используя for loop в HTML шаблоне. Вот что я пытаюсь сказать;

Models.py


     class Doctor(models.Model):
              Doctor_Name = models.CharField(max_length=200)

              def __str__(self):
              return self.Doctor_Name


       class Patient(models.Model):
                Name = models.CharField(max_length=200)
                Telephone = models.CharField(max_length=100, unique=True)
                Service_doctor = models.ForeignKey(Doctor, on_delete=CASCADE)
                def __str__(self):
                return self.Doctor_Name

Views.py


       def Newpatient(request):
                  if request.method == 'POST':         

                      Name = request.POST.get('Name')
                      Telephone = request.POST.get('Telephone')
                      Service_doctor = request.POST.get('Service_doctor')

                      formdata = Patient(Name=Name, Telephone=Telephone, Service_doctor=Service_doctor)
                      formdata.save()
         
                      return render(request, 'Adm.html')
        ```

   Any help please?

Это создаст новую запись под именем пациента:

dr = Doctor.object.filter(id = pk)

patient = Patient(
       name = 'John Doe'
       telephone = '123456786'
       service_doctor = dr
       )

Вы можете достичь этого, используя request.user, чтобы установить Service_doctor как тот, который в настоящее время находится в экземпляре:

def Newpatient(request):
    if request.method == 'POST':         
        Name = request.POST.get('Name')
        Telephone = request.POST.get('Telephone')
        Service_doctor = request.user

        formdata = Patient(Name=Name, Telephone=Telephone, Service_doctor=Service_doctor)
        formdata.save()

        return render(request, 'Adm.html')
Вернуться на верх