from django.contrib import admin from .models import StaffInfo class StaffInfoAdmin(admin.ModelAdmin): # 定义需要显示的字段 list_display = ('id_card', 'name', 'birth') def save_model(self, request, obj, form, change): # 如果新建员工信息,且birth字段为空 if not change and not obj.birth: # 提取身份证号的第7~14位作为生日 birth_str = obj.id_card[6:14] # 将生日转换为datetime.date类型并赋值给birth字段 obj.birth = datetime.datetime.strptime(birth_str, '%Y%m%d').date() # 调用父类的save_model方法保存对象 super().save_model(request, obj, form, change) admin.site.register(StaffInfo, StaffInfoAdmin)好像没起到自动填充BIRTH的作用,哪里出了问题?
时间: 2024-03-28 13:36:44 浏览: 104
Django admin.py 在修改/添加表单界面显示额外字段的方法
5星 · 资源好评率100%
根据您提供的代码,我暂时无法确定哪里出了问题。不过,您可以尝试以下几个方法来排查问题:
1. 检查是否在应用中正确添加了`StaffInfo`模型;
2. 检查是否在应用中正确导入了`datetime`模块;
3. 检查`StaffInfo`模型中的`birth`字段是否为空;
4. 在管理员界面中创建一个新的员工信息时,确保身份证号的第7~14位可以正确提取出生日。
如果您仍然无法解决问题,建议您提供更多的代码和错误信息,以便更好地定位问题。
阅读全文