【发布时间】:2020-10-27 13:51:58
【问题描述】:
我的 Django 项目目前部署在使用 nginx/gunicorn/supervisor 的测试远程服务器中。
我尝试远程“即时”更新细微更改。
我有一个预期格式的字段:XXX-YY-000
我在一个字段 (AAA-AA-999) 上添加了 Jquery 字段掩码,并希望用户能够输入小写但希望以大写形式将结果存储在数据库中
此外,我还有表单验证:
- 长度为 (10)
- YY 应该对应特定的 XXX(patient_code_is_valid 函数)
所以我使用upper() 方法通过代码条目进行修改
在本地,它可以工作,但在远程服务器上它不起作用! 我不知道如何“调试”以查看传递给我的 patient_code_is_valid 函数的内容...
forms.py
def clean_ran_num(self):
data = self.cleaned_data['ran_num'].upper()
if len(data) != 10:
raise forms.ValidationError(_("Error on Patient code number format (example: XXX-YY-000)"))
if not patient_code_is_valid(data):
raise forms.ValidationError(_("Error on Patient code number: country code does not correspond to site code"))
return data
models.py
def patient_code_is_valid(code):
site = code[4:6].upper()
pays = code[:3].upper()
site_list = [s.sit_abr for s in Site.objects.all()]
pays_list = [p.pay_abr for p in Pays.objects.all()]
if site in site_list and pays in pays_list:
a = Site.objects.get(sit_abr = site).reg.pay.pay_ide
b = Pays.objects.get(pay_abr = pays).pay_ide
if a == b:
return True
return False
【问题讨论】:
标签: python django forms validation