Django 为 AutoField 添加前缀



有没有办法在 Django 中创建一个总是以某个前缀开头的AutoField

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

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

其次,不,你不能这样做,但你可以覆盖save方法来填充第二列,该列将与自动生成的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)

最新更新