2017-10-15 16 views
0

私はDjangoプロジェクトで奇妙なことに気付きました。 python manage.py makemigrationsコマンドを実行するたびに、通知と呼ばれる私のアプリケーション用の新しい移行ファイルが作成されます。私は0の変更をモデルにしましたが、新しいマイグレーションファイルが作成されました。私はmakemigrationsコマンドをN回実行することができ、N個の移行ファイルが作成されます。Djangoは、設定のためにそれぞれの 'makemigrations'の後に移行ファイルを作成しますか?

モデルは以下のようになります。

from django.db import models 
from django.db.models.fields import EmailField 


class EmailLog(models.Model): 
    email = models.EmailField(max_length=70, null=False) 
    subject = models.CharField(max_length=255, null=False) 
    html_body = models.TextField(null=False) 
    sent_choices = { 
     ('OK', 'Sent'), 
     ('KO', 'Not sent'), 
     ('KK', 'Unexpected problems') 
    } 
    status = models.CharField(max_length=2, choices=sent_choices, 
           null=False, default='KO') 
    sent_log = models.TextField(null=True) 
    sent_date = models.DateTimeField(auto_now_add=True, null=False) 

を各移行はちょうど​​フィールドの位置を入れ替えます。それで全部です!

​​はランダムオーダーですか?どうすればそれを避けることができますか?

+1

これは辞書ではなく、セットリテラルです。 –

答えて

2

あなたは正しいです - これは、順不同のsetのためです。

代わりにtupleを使用することをおすすめします。

sent_choices = (
    ('OK', 'Sent'), 
    ('KO', 'Not sent'), 
    ('KK', 'Unexpected problems') 
) 

タプルもthe django docsで使用されます。

関連する問題