覆盖模型的保存

时间:2018-02-15 16:39:25

标签: python django django-models override models

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字段的值

1 个答案:

答案 0 :(得分:0)

在调用保存超级之前,您正在分配self.number_in_order。因此,在分配时,您在self.id中没有价值。 id的值由数据库决定。