2016-09-29 68 views
1

我想在Django中創建一個從較大值開始的自動增量字段,我發現在模型中使用Autofield但它從1開始。如何使在Django的自動增量字段從10000開始

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

看看第二個答案在這裏:http://stackoverflow.com/questions/117800/how-to-get-django-autofields-to-start-ata-a-因爲您似乎在使用mysql,因此數量更高 – brianpck

回答

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.objects.create(pk=999, ...) 
     University.objects.delete() 
    except IntegrityError: 
     pass 

class MyAppConfig(AppConfig): 
    ... 

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

我們這裏做的是創造了記錄,並立即將其刪除。在mysql上更改自動增量中的下一個值。記錄已被刪除並不重要。下一個簽署的數字將是1000.

相關問題