我想在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
怎么办呢?任何有用的建议将不胜感激?
答案 0 :(得分:1)
最简单的方法是抓住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.
答案 1 :(得分:0)
而不是在前端尝试,我建议你在后端(在数据库中)创建序列,并启动更高的数字序列值。
希望这能解决你的目的。