无法添加PerformanceReview模型实例,Django Admin面板异常
Django中PerformanceReview模型无法创建实例的问题
我用Django开发Web应用学习已有数月,给多个模型实现了类视图(CBV)和函数视图(FBV)来新增数据条目,但PerformanceReview模型出现异常:
- 最初用CBV无法添加实例,切换到FBV后,不管是通过forms.py还是直接模板提交,控制台无报错、页面跳转正常,但数据库里始终没有新增条目
- 尝试通过Django Admin面板创建时,系统提示“绩效评估“PerformanceReview object (1e549e2c-4b3d-4030-9007-b889265ed908)”已成功添加。”,但对象列表为空;点击提示中的链接,显示:
不存在ID为“1e549e2c-4b3d-4030-9007-b889265ed908”的绩效评估,可能已被删除?
已执行的排查步骤
- 执行了
makemigrations和migrate命令 - 应用其他功能运行正常
- Admin.py中已注册该模型
- Admin表单所有字段显示正常
- 字段验证器工作正常
Admin注册代码
from django.contrib import admin from . models import PerformanceReview # Register your models here. admin.site.register(PerformanceReview)
PerformanceReview模型代码
class PerformanceReview(models.Model): job_instance = models.ForeignKey(JobInstance, on_delete=models.SET_NULL, null=True) employee = models.ForeignKey(Employee, on_delete=models.SET_NULL, null=True, blank=True) performance_review_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) year = models.IntegerField(validators=[MinValueValidator(2022), MaxValueValidator(2060)], blank=False, null=False) hr_created = models.DateTimeField(null=True, blank=True) employee_submitted = models.DateTimeField(null=True, blank=True) manager_submitted = models.DateTimeField(null=True, blank=True) hr_submitted = models.DateTimeField(null=True, blank=True) done_employee = models.BooleanField(default=False, null=True, blank=True) # 请以1-5分的等级评估你的整体工作质量,并举例说明你最优质的工作成果 quality_rating_grade = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(5)], blank=True, null=True) quality_rating = models.TextField(max_length=2000, null=True, blank=True) # 你是否能持续满足项目截止日期?以1-5分评估你的按时交付表现,并举例说明你在哪些项目中出色完成了交付 on_time_delivery_rating_grade = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(5)], blank=True, null=True) on_time_delivery_rating = models.TextField(max_length=2000, null=True, blank=True) # 以1-5分评估你管理工作负载和优先级的效率,并举例说明你如何高效管理时间和资源 workload_management_rating_grade = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(5)], blank=True, null=True) workload_management_rating = models.TextField(max_length=2000, null=True, blank=True) # 以1-5分评估你工作中的细节关注度和准确性,并举例说明你的细节关注对项目产生重大影响的案例 attention_to_detail_rating_grade = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(5)], blank=True, null=True) attention_to_detail_rating = models.TextField(max_length=2000, null=True, blank=True)
已尝试的解决方法
- 修改模型后重新执行迁移
- 通过forms.py创建实例
- 仅通过HTML模板直接提交数据
- 切换使用函数视图和类视图
- 用多个用户账号测试
- 在Admin面板中测试创建操作
内容的提问来源于stack exchange,提问作者Dima
相关产品推荐
相关产品推荐

