如何在Django中创建从10000开始的自动增量字段

2024-04-19 21:48:39 发布

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

我想在Django中创建一个从更大的值开始的自动增量字段,我发现在模型中使用Autofield,但它是从1开始的。在

class University(models.Model):
    id = models.AutoField(primary_key=True)
    university_name = models.CharField(max_length=250, unique=True)
    university_slug = models.SlugField(max_length=250, unique=True)

    def __unicode__(self):
        return self.university_name

怎么能做到这一点?有什么有用的建议吗?在


Tags: djangoname模型selftruemodelmodelslength
2条回答

最简单的方法是捕获post migrate signal

from django.apps import AppConfig
from django.db.models.signals import post_migrate

def my_callback(sender, **kwargs):
     if sender.name = 'myapp'
     try:
         university = University.objects.create(pk=999, ...)
         university.delete()
     except IntegrityError:
         pass

class MyAppConfig(AppConfig):
    ...

    def ready(self):
        post_migrate.connect(my_callback, sender=self)

我们现在要做的是创建一个记录并立即删除它。在mysql上更改自动增量中的下一个值。记录已被删除并不重要。下一个指定的数字是1000。在

而不是在前端尝试,我建议您在后端(在数据库中)创建序列,从较高的数字序列值开始。在

希望这能解决你的目的。在

相关问题 更多 >