South を使用して、モデルの 1 つに新しいフィールド is_private を追加したいと考えました。
チュートリアルに従って、models.py ファイルを変更した後、これを行う必要があります。
./manage.py schemamigration reconstructions --auto
戻り値:
Added field is_private on reconstructions.Reconstruction
Created 0005_auto__add_field_reconstruction_is_private.py. You can now apply this migration with: ./manage.py migrate reconstructions
これは素晴らしいことです。さて、次のステップは、
python manage.py migrate reconstructions
そしてそれは印刷します:
- Migrating forwards to 0005_auto__add_field_reconstruction_is_private.
> reconstructions:0005_auto__add_field_reconstruction_is_private
- Loading initial data for reconstructions.
No fixtures found.
それはそれの仕事をしているようです。しかし、後でフィールド is_private をチェックすると、Django からエラーがスローされます。
Cannot resolve keyword 'is_private' into field.
これは、南がデータベースをまったく変更していないことを示しています。どうしてですか?
追加情報: モデル クラス:
class Reconstruction(models.Model):
id = models.CharField(max_length=36, primary_key=True,
editable=False)
uploader = models.ForeignKey(User, blank=True, null=True)
status = models.TextField(blank=True)
viewcount = models.IntegerField(default=0)
error_flag = models.IntegerField(default=0)
is_done = models.BooleanField(default=False)
create_date = models.DateTimeField(auto_now=True)
last_modified_date = models.DateTimeField(auto_now=True)
is_private = models.BooleanField(default=True)
クラッシュの原因となったコード:
recordings = Recording.objects.filter(is_done=True).filter(is_private=False).order_by('-create_date')