从 django.db 导入模型 从 django.utils 导入时区 导入日期时间
员工类(模型。模型): emp_id = models.CharField(editable=False,unique=True,max_length=10,default=None)
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 版本 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 - 错误 - post - 46 - 员工记录创建失败:(1062,“键‘employee_employee’的重复条目‘23SNS0002’ .emp_id'") 内部服务器错误:/employee/emp/ 2023-03-04 12:38:20,500 - django.request - 错误 - log_response - 241 - 内部服务器错误:/employee/emp/ [04/Mar/2023 12:38:20] “POST /employee/emp/ HTTP/1.1” 500 73
我想生成员工 ID 示例:23SNS0001、23SNSNS0002、23SNS0003……等等……作为唯一的,不应形成重复的……emp_id。 上面显示我的模型创建重复....即使我设置 unique = True。 我想我必须更改我使用过的保存功能中的代码...可以帮助解决问题