In my Employee model, I defined a field called "full_name" declared as a models.GeneratedField like so:
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))
然而,当我试图在行政网页上节省一个记录时,我只字不值(“Cannot”),只字不提(没有主要钥匙)。 为了找出问题的根源,我尝试如下:
- Commented out the user field, and the system worked just fine.
- Re-instated back the user field, but changed to on_delete=models.SET_NULL, null=True, blank=True. Runserver and tried adding records in the admin page. Here, I observed that:
- If I left the user field blank, the system worked just fine.
- If I set the field with an existing user, this is where the system error occured.
Anyone else encountered this problem? How did you fix this? Or is this some kind of a bug? django 5.0