覆盖模型保存
Override save for model
class Employee(models.Model):
id = models.AutoField(primary_key=True)
number_in_order = models.IntegerField(default=1)
image = models.ImageField(upload_to='employees_photo/')
name = models.CharField(max_length = 30, default='')
position = models.CharField(max_length=60, default='')
description = models.TextField(blank=True, default='')
def __str__(self):
return "%s" % (self.name)
def save(self, *args, **kwargs):
self.number_in_order = self.id
super(Employee, self).save(*args, **kwargs)
为什么number_in_order字段没有占用id字段的值
您在调用 save 的 super 之前分配 self.number_in_order
。所以在赋值的时候,你在self.id
中没有值。 id
的值由数据库决定。
class Employee(models.Model):
id = models.AutoField(primary_key=True)
number_in_order = models.IntegerField(default=1)
image = models.ImageField(upload_to='employees_photo/')
name = models.CharField(max_length = 30, default='')
position = models.CharField(max_length=60, default='')
description = models.TextField(blank=True, default='')
def __str__(self):
return "%s" % (self.name)
def save(self, *args, **kwargs):
self.number_in_order = self.id
super(Employee, self).save(*args, **kwargs)
为什么number_in_order字段没有占用id字段的值
您在调用 save 的 super 之前分配 self.number_in_order
。所以在赋值的时候,你在self.id
中没有值。 id
的值由数据库决定。