1

Django 1.7 プロジェクトに取り組んでいるときに、既存のモデルにフィールドを追加する必要がありました。

以下を追加しました。 bairro = models.CharField(max_length=200)

次に、両方のコマンドを実行しました。

python manage.py makemigrations
python manage.py migrate

そして今、テストはもう実行されません。実行するたびに、次のpython manage.py testエラーが発生します。

django.db.utils.ProgrammingError: column admin_starbeli_salao.bairro does not exist

シェルを開くとオブジェクトを追加でき、フィールドが機能するため、これは奇妙です。

私に何ができる?

4

1 に答える 1

1

これは、移行の 1 つに問題がありました。

それが何であるかを見つけるために、データベースを削除して実行しようとしましpython manage.py migrateたが、同じエラーが発生しました。
次に、関連するモデルにこのモデルのデフォルトがあることに気付きました。

def first_my_model():
    return MyModel.objects.first().pk if MyModel.objects.first() else 0

この呼び出しで新しく追加された (データベースにはまだ存在しない) フィールドを使用しようとしたため、エラーがスローされました。

于 2014-12-05T11:36:54.300 に答える