Django在AutoField中添加前缀

时间:2018-07-04 00:08:38

标签: python django autofield

有没有一种方法可以在Django中始终以特定前缀开头的AutoField

我想创建一个始终以数字1开头的AutoField,其中前15条保存的记录将具有值11, 12, 13, 14, ..., 19, 110, 111, 112, 113, 114, 115

1 个答案:

答案 0 :(得分:0)

首先,如果已经将一个AutoField用于主键,则无法创建第二个save,因为某些数据库后端(例如MySQL)不支持它。参见https://code.djangoproject.com/ticket/8576

第二,不,您不能这样做,但是您可以 覆盖1方法来填充第二列,该列会将id与您自动生成的{{1 }},即:

class MyModel(models.Model):
    ...
    custom_id = models.IntegerField()

    def save(self, *args, **kwargs):
        if self.custom_id is None:
            self.custom_id = int('1' + str(self.id))
        return super(MyModel, self).save(*args, **kwargs)