如果精确值匹配,Django 如何自动呈现患者姓名?
Django how to automatically render name of patient if exact value matched?
我有一份预约表格。看图片
如果任何患者填写手机号码并且他已经存在于我的数据库中,那么我想在我的患者姓名字段中自动呈现他的名字。假设我有一个名叫 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()
方法一:任意数据大小
- 使用 JavaScript(JS) onchange 检测用户何时输入和离开手机号码输入。
- 在 JS 中使用 Ajax 请求将其发送到服务器(Django 中的 views.py)
- 视图函数然后尝试根据手机号码找到患者,然后 returns 返回 JsonResponse 患者信息
- JS 接收到它,并通过它的 id 定位患者姓名输入,将输入值更改为患者姓名。
方法二:小数据
如果你没有太多的病人记录,这个方法完全避免了Ajax。
- 在呈现页面时发送包含所有患者姓名和匹配手机号码的字典。
- 使用 JavaScript(JS) onchange 检测用户何时输入和离开手机号码输入。
- 使用JS抓取号码,匹配手机号,通过id输入Patient Name,将输入值改为病人姓名。
底线
Django 是 server-side,你要求的必须在客户端完成,意思是 JavaScript。
我有一份预约表格。看图片
如果任何患者填写手机号码并且他已经存在于我的数据库中,那么我想在我的患者姓名字段中自动呈现他的名字。假设我有一个名叫 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()
方法一:任意数据大小
- 使用 JavaScript(JS) onchange 检测用户何时输入和离开手机号码输入。
- 在 JS 中使用 Ajax 请求将其发送到服务器(Django 中的 views.py)
- 视图函数然后尝试根据手机号码找到患者,然后 returns 返回 JsonResponse 患者信息
- JS 接收到它,并通过它的 id 定位患者姓名输入,将输入值更改为患者姓名。
方法二:小数据
如果你没有太多的病人记录,这个方法完全避免了Ajax。
- 在呈现页面时发送包含所有患者姓名和匹配手机号码的字典。
- 使用 JavaScript(JS) onchange 检测用户何时输入和离开手机号码输入。
- 使用JS抓取号码,匹配手机号,通过id输入Patient Name,将输入值改为病人姓名。
底线
Django 是 server-side,你要求的必须在客户端完成,意思是 JavaScript。