2017-10-02 59 views
2

AbstractUmailUserから継承したCustomUserモデルを作成しました。
私はそれを仕上げおよび移行を行うことが、私は次のエラーを取得していた後、アバターのフィールドを追加したい:Django AbstractEmailUserモデルの列が存在しません

column account_customuser.avatar does not exist 
LINE 1: ...user"."name", "account_customuser"."valid_email", "account_c... 

models.pyはこのようになりました

class CustomUser(AbstractEmailUser): 
    nickname = models.CharField('nickname', max_length=100, unique=True) 
    name = models.CharField(max_length=200, blank=True, null=True, default=None) 
    valid_email = models.BooleanField('valid email', default=False, blank=True) 
    avatar = models.ImageField(upload_to='profile/photo', blank=True, null=True, default=None) 

何ができるように見えます私は正しくアバターフィールドを追加するのですか?

+0

すべてのマイグレーションファイルを削除してから、マイグレーション後に –

+0

マイグレーションをやり直してください。また、 'python manage.py migrate'を実行しましたか? –

+0

すべてを削除して、もう一度移行を行いましたが、このエラーが発生しました。私はpostgresテーブルを削除する必要がありますか?できるだけ重要なデータがない場合は –

答えて

1

としては、ここでは次のように述べていますDjango Programming error column does not exist even after running migrations

何かがあなたの移行プロセス中に間違っている可能性があります。

  1. は、データベースにアクセスして、 すべての移行が記載されていますdjango_migrationsという名前のテーブルを見つけます。
  2. モデルにavatar列を追加した移行を持つ行を見つけて、データベースから削除します(行のみ)。再び
  3. 移行は:Django Migration Error: Column does not exist、あなたはインストール済みのアプリケーションを再実行移行にツールバーをコメントする必要があり、その場合には:./manage.py migrate

もう一つの可能​​性は、あなたがここで何が起こったかのようなDjango Toolbarを使用していることです。

0

これらの変更で新しい移行を適用しましたか? showmigrationsを使用して確認するか、makemigrationsを使用して移行を作成し、migrateを適用して適用することができます。

+0

はい、私は、私はすべての移行を削除して、まだそれを得るすべてを再頒布して、私はpostgresのテーブルを削除する必要がありますか? –

+0

テーブルを削除する前に、この変更を使って移行について "django_migrations"からレコードを削除してみることができます。または、変更を加えて新しい移行を作成して適用します。 –

関連する問題