【问题标题】:Django forms validation: working in dev but not in production (nginx/gunicorn/supervisor)Django 表单验证:在开发中工作但不在生产中(nginx/gunicorn/supervisor)
【发布时间】: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


    【解决方案1】:

    只需重新启动服务器即可考虑修改 sudo supervisorctl restart myproject

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 2013-06-20
      相关资源
      最近更新 更多