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