2016-09-29 14 views
1

もっと大きな値から始まるDjangoの自動インクリメントフィールドを作成したいのですが、Autofieldがモデルにありますが、1から始まります。10000から始まるdjangoで自動インクリメントフィールドを作る方法

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

ここで2番目の答えを見てください:http://stackoverflow.com/questions/117800/how-to-get-django-autofields-to-start-at-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になります。

関連する問題