デフォルトの設定なしで、非ヌルフィールド「new_field」をユーザープロファイルに追加しようとしています。質問する

デフォルトの設定なしで、非ヌルフィールド「new_field」をユーザープロファイルに追加しようとしています。質問する

Django 1.7からはSouthや他の移行システムを使う必要がないので、単純なコマンドを使うだけです。python manage.py makemigrations

しかし、次のようなエラーが表示されます:

You are trying to add a non-nullable field 'new_field' to userprofile without a default;
we can't do that (the database needs something to populate existing rows).

models.pyは次のとおりです。

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    website = models.URLField(blank=True)
    new_field = models.CharField(max_length=140)

オプションとは何ですか?

ベストアンサー1

もしあなたは開発の初期段階にあり、気にしないあなたの現在のデータベースデータ削除してから移行することができます。ただし、最初に移行ディレクトリをクリーンアップし、テーブル (django_migrations) からその行を削除する必要があります。

rm  your_app/migrations/* 

注意: 移行フォルダー内の _ _ init _ _ .py を削除しないでください。

rm db.sqlite3
python manage.py makemigrations
python manage.py migrate

もし以前に Django の Admin Web アプリのスーパーユーザーを作成したことがある場合は、そのユーザーを再度作成する必要があるかもしれません。

おすすめ記事