Django как автоматически вывести имя пациента при совпадении точного значения?

У меня есть формы для назначенной встречи. см. фото enter image description here

Если какой-либо пациент вводит номер мобильного телефона и он уже существует в моей базе данных, то я хочу автоматически отобразить его имя в полях имени пациента. Предположим, у меня есть пациент по имени Jhone и его мобильный номер +123456. Если Jhone введет свой номер мобильного телефона, то я хочу, чтобы его имя автоматически отображалось в полях имени пациента. Как это сделать в djago? Вот мой код:

models.py

class Patient(models.Model):
       patient_name = models.CharField(max_length=150)
       patient_number = models.CharField(max_length=50, blank=True, null=True) 

class Appointment(models.Model):
       patient = models.ForeignKey(
       Patient, on_delete=models.CASCADE, blank=True, null=True)
       patient_name = models.CharField(max_length=100, blank=True, null=True)
       patient_number = models.CharField(max_length=50, blank=True, null=True)

views.py:

 if form.is_valid():
     form.save()
     messages.add_message(request, messages.INFO,f'Appoinment added sucessfully for 
       {form.instance.patient_name}')
     return redirect('hospital:add-appointment')
 else:
    form = AppointmentForms()

Метод 1: Любой размер данных

  1. Используйте JavaScript (JS) onchange для определения момента, когда пользователь вводит и оставляет ввод номера мобильного телефона.
  2. Используйте Ajax запрос в JS для отправки этого на сервер (views.py в вашем Django)
  3. .
  4. Функция представления затем пытается найти пациента на основе номера мобильного телефона и возвращает JsonResponse обратно с информацией о пациенте
  5. .
  6. JS получает его и нацеливается на вход "Имя пациента" через его id, изменяя значение входа на имя пациента.

Метод 2: Небольшие данные
. Если у вас не слишком много записей пациентов, этот метод позволяет полностью избежать Ajax.

  1. Отправляйте словарь ВСЕХ имен пациентов и соответствующих мобильных номеров, когда страница отображается.
  2. Использовать JavaScript (JS) onchange для обнаружения момента, когда пользователь вводит и оставляет ввод номера мобильного телефона.
  3. Используйте JS для захвата номера, сопоставления его с номером мобильного телефона и нацеливания на ввод имени пациента через его id, изменяя значение ввода на имя пациента.

Вывод
Django является серверным, и то, о чем вы спрашиваете, должно быть сделано на стороне клиента, то есть на JavaScript.

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