从django.db导入模型从django.utils导入时区导入日期时间
类雇员(型号。型号):emp_id =模型.字符字段(可编辑=假,唯一=真,最大长度=10,默认=无)
def save(self,*args, **kwargs):
if not self.emp_id:
prefix2 = format(timezone.now().strftime('%y'))+'SNS'
prev_instances = self.__class__.objects.filter(emp_id__contains=prefix2)
if prev_instances.exists():
last_instance_id = prev_instances.last().emp_id[-4:]
self.emp_id = prefix2+'{0:04d}'.format(int(last_instance_id)+1)
self.email_id
else:
self.emp_id =prefix2+'{0:04d}'.format(1)
self.emp_id
super(Employee, self).save(*args, **kwargs)
正在执行系统检查...
系统检查未发现问题(0已静音)2023年3月4日- 12:37:39 Django version 4.1,使用设置'CRMSolutions.settings'启动开发服务器在http://127.0.0.1:8000/按Ctrl-BREAK退出服务器[04/Mar/2023 12:37:45]“POST /employee/emp/ HTTP/1.1”201 418 [04/Mar/2023 12:38:06]“POST /employee/emp/HTTP/1.1”201 416 2023-03-04 12:38:20,500- root - ERROR - post - 46 - employee记录创建失败:(1062,“关键字'employee_employee .emp_id'的条目'23 SNS 0002'重复”)内部服务器错误:/emp/ 2023-03-04 12:38:20,500- django.请求-错误-日志响应- 241 -内部服务器错误:/雇员/员工/ [2023年3月4日12:38:20]“发布/雇员/员工/ HTTP/1.1”500 73
我要生成员工ID示例:23 SNS 0001,23 SNSNS 0002,23 SNS 0003......等......作为唯一的,不应形成重复...... emp_id。如上所示,我的模型创建重复......即使我设置unique = True。我认为我必须更改我使用的保存函数中的代码......可以帮助解决问题
1条答案
按热度按时间c3frrgcw1#
我想第二行“self.emp_id”是个打字错误: