Python Django模型id增加2

2024-05-29 06:54:01 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以增加django车型id中的自动增量:

class Role(models.Model):
    id = models.AutoField(primary_key=True) # I need to get Integer field, increment=2
    uuid = models.CharField(max_length=36, unique=True)

我应该覆盖.save()方法吗


Tags: todjangokeyidtruegetmodelmodels
1条回答
网友
1楼 · 发布于 2024-05-29 06:54:01

根据this answer,您应该重写模型的save()方法:

from django.db.models import Max, F
class Role(models.Model):
    id = models.AutoField(primary_key=True) 
    uuid = models.CharField(max_length=36, unique=True)

    def save(self, *args, **kwargs):
        if not self.pk:
            max = Role.objects.aggregate(max=Max(F('id')))['max']
            self.id = max + 2 if max else 1 
        super().save(*args, **kwargs)

试试这个。也许有帮助

相关问题 更多 >

    热门问题