将model字段设置为 blank=True, null=True,可绕过表单必填校验

This commit is contained in:
王思川 2024-06-19 05:32:15 +08:00
parent a318384f63
commit a803e1c37c
1 changed files with 38 additions and 40 deletions

View File

@ -96,45 +96,43 @@ class EmployeeInformation(models.Model):
employee_id = models.AutoField(primary_key=True) employee_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255, verbose_name='姓名') name = models.CharField(max_length=255, verbose_name='姓名')
id_number = models.CharField(max_length=255, verbose_name='身份证号', unique=True) id_number = models.CharField(max_length=255, verbose_name='身份证号', unique=True, blank=True, null=True)
gender = models.CharField(max_length=10, choices=GENDER_CHOICES, verbose_name='性别') gender = models.CharField(max_length=10, choices=GENDER_CHOICES, verbose_name='性别', blank=True, null=True)
birthday = models.DateField(verbose_name='生日') birthday = models.DateField(verbose_name='生日', blank=True, null=True)
age = models.IntegerField(verbose_name='年龄') age = models.IntegerField(verbose_name='年龄', blank=True, null=True)
height = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='身高cm') height = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='身高cm', blank=True, null=True)
weight = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='体重kg') weight = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='体重kg', blank=True, null=True)
blood_type = models.CharField(max_length=3, choices=BLOOD_TYPE_CHOICES, verbose_name='血型') blood_type = models.CharField(max_length=3, choices=BLOOD_TYPE_CHOICES, verbose_name='血型', blank=True, null=True)
ethnicity = models.CharField(max_length=255, verbose_name='民族', blank=True) ethnicity = models.CharField(max_length=255, verbose_name='民族', blank=True, null=True)
domicile = models.CharField(max_length=255, verbose_name='户籍地', blank=True) domicile = models.CharField(max_length=255, verbose_name='户籍地', blank=True, null=True)
marital_status = models.CharField(max_length=50, choices=MARITAL_STATUS_CHOICES, verbose_name='婚姻状态') marital_status = models.CharField(max_length=50, choices=MARITAL_STATUS_CHOICES, verbose_name='婚姻状态', blank=True, null=True)
political_affiliation = models.CharField(max_length=50, choices=POLITICAL_AFFILIATION_CHOICES, political_affiliation = models.CharField(max_length=50, choices=POLITICAL_AFFILIATION_CHOICES, verbose_name='政治面貌', blank=True, null=True)
verbose_name='政治面貌') entry_date = models.DateField(verbose_name='入职日期', blank=True, null=True)
entry_date = models.DateField(verbose_name='入职日期') regularization_date = models.DateField(verbose_name='转正日期', blank=True, null=True)
regularization_date = models.DateField(null=True, blank=True, verbose_name='转正日期') employment_type = models.CharField(max_length=50, choices=EMPLOYMENT_TYPE_CHOICES, verbose_name='用工性质', blank=True, null=True)
employment_type = models.CharField(max_length=50, choices=EMPLOYMENT_TYPE_CHOICES, verbose_name='用工性质') status = models.CharField(max_length=50, choices=STATUS_CHOICES, verbose_name='状态', blank=True, null=True)
status = models.CharField(max_length=50, choices=STATUS_CHOICES, verbose_name='状态') primary_department = models.CharField(max_length=255, verbose_name='一级部门', blank=True, null=True)
primary_department = models.CharField(max_length=255, verbose_name='一级部门', default='星河') secondary_department = models.CharField(max_length=255, verbose_name='二级部门', blank=True, null=True)
secondary_department = models.CharField(max_length=255, verbose_name='二级部门', default='数资团队') position = models.CharField(max_length=255, verbose_name='岗位')
position = models.CharField(max_length=255, verbose_name='岗位', default='数据分析师') rank = models.CharField(max_length=255, verbose_name='职级')
rank = models.CharField(max_length=255, verbose_name='职级', default='P1') contract_end_date = models.DateField(verbose_name='当前合同到期日期', blank=True, null=True)
contract_end_date = models.DateField(null=True, blank=True, verbose_name='当前合同到期日期') mobile_number = models.CharField(max_length=255, verbose_name='手机号', blank=True, null=True)
mobile_number = models.CharField(max_length=255, verbose_name='手机号') email = models.EmailField(verbose_name='邮箱', blank=True, null=True)
email = models.EmailField(verbose_name='邮箱') mailing_address = models.CharField(max_length=255, verbose_name='通信地址', blank=True, null=True)
mailing_address = models.CharField(max_length=255, verbose_name='通信地址', blank=True) emergency_contact = models.CharField(max_length=255, verbose_name='紧急联系人', blank=True, null=True)
emergency_contact = models.CharField(max_length=255, verbose_name='紧急联系人', blank=True) relation_with_contact = models.CharField(max_length=255, verbose_name='与本人关系', blank=True, null=True)
relation_with_contact = models.CharField(max_length=255, verbose_name='与本人关系', blank=True) emergency_contact_phone = models.CharField(max_length=255, verbose_name='紧急联系人电话', blank=True, null=True)
emergency_contact_phone = models.CharField(max_length=255, verbose_name='紧急联系人电话', blank=True) education = models.CharField(max_length=50, choices=EDUCATION_CHOICES, verbose_name='学历', blank=True, null=True)
education = models.CharField(max_length=50, choices=EDUCATION_CHOICES, verbose_name='学历') undergraduate_school = models.CharField(max_length=255, verbose_name='本科毕业院校', blank=True, null=True)
undergraduate_school = models.CharField(max_length=255, verbose_name='本科毕业院校', blank=True) graduate_school = models.CharField(max_length=255, verbose_name='研究生毕业院校', blank=True, null=True)
graduate_school = models.CharField(max_length=255, verbose_name='研究生毕业院校', blank=True) major = models.CharField(max_length=255, verbose_name='专业', blank=True, null=True)
major = models.CharField(max_length=255, verbose_name='专业', blank=True) technical_title = models.CharField(max_length=255, verbose_name='技术职称', blank=True, null=True)
technical_title = models.CharField(max_length=255, verbose_name='技术职称', blank=True) base_salary = models.TextField(verbose_name='基础工资(元)', blank=True, null=True)
base_salary = models.TextField(verbose_name='基础工资(元)', blank=True) salary_account_number = models.CharField(max_length=255, verbose_name='工资卡号', blank=True, null=True)
salary_account_number = models.CharField(max_length=255, verbose_name='工资卡号', blank=True) bank_of_salary_account = models.CharField(max_length=255, verbose_name='工资卡开户行', blank=True, null=True)
bank_of_salary_account = models.CharField(max_length=255, verbose_name='工资卡开户行', blank=True) resignation_type = models.CharField(max_length=50, choices=RESIGNATION_TYPE_CHOICES, verbose_name='离职类型', blank=True, null=True)
resignation_type = models.CharField(max_length=50, choices=RESIGNATION_TYPE_CHOICES, verbose_name='离职类型', resignation_reason = models.TextField(verbose_name='离职原因', blank=True, null=True)
blank=True) resignation_date = models.DateField(verbose_name='离职日期', blank=True, null=True)
resignation_reason = models.TextField(verbose_name='离职原因', blank=True)
resignation_date = models.DateField(null=True, blank=True, verbose_name='离职日期')
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
primary_department_name = PrimaryDepartment.objects.filter(department_name=self.primary_department).first() primary_department_name = PrimaryDepartment.objects.filter(department_name=self.primary_department).first()
@ -152,7 +150,7 @@ class EmployeeInformation(models.Model):
raise ValueError("岗位不存在") raise ValueError("岗位不存在")
if not rank: if not rank:
raise ValueError("不存在") raise ValueError("不存在")
super(EmployeeInformation, self).save(*args, **kwargs) super(EmployeeInformation, self).save(*args, **kwargs)