Django 5.0中GeneratedField关联ForeignKey保存时报错求助
Django 5.0 使用GeneratedField关联外键保存时触发ValueError问题
我在Employee模型中定义了名为full_name的models.GeneratedField字段,配置代码如下:
class Employee(models.Model): first_name = models.CharField(max_length=100) mid_name = models.CharField('Middle name', max_length=75) last_name = models.CharField(max_length=75) full_name = models.GeneratedField( expression=Concat( "last_name", Value(", "), "first_name", Value(" "), "mid_name" ), output_field=models.CharField(max_length=250), db_persist=True, ) created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET(get_sentinel_user))
在管理页面保存记录时,触发了错误:ValueError("Cannot force an update in save() with no primary key.")
为排查问题,我做了以下操作:
- 注释掉
user字段后,系统可正常运行; - 恢复
user字段并修改为on_delete=models.SET_NULL, null=True, blank=True后:- 留空
user字段时可正常保存; - 选择已有用户时,会触发上述错误。
- 留空
有人遇到过该问题吗?如何解决?这是否是Django 5.0的bug?
内容的提问来源于stack exchange,提问作者gmaz_tauruz
相关产品推荐
相关产品推荐

