0

私はカスタムユーザーモデルを使ってdjango Webアプリケーションを構築しています。私がフォームを送信するサインアッププロセスの最後に、完全性エラーが発生します。ここでなぜ私はdjangoの整合性エラーを取得していますか?

は誤りです:

Exception Type: IntegrityError 
Exception Value: NOT NULL constraint failed: accounts_user.job_history_id 

このエラーは、JOB_HISTORYという名前のカスタム・ユーザー・モデルのフィールドがnullにすることはできませんことを示しています。しかし、そのようなフィールドは存在しません。私はこのエラーが参照していると、なぜそれが起こっている何見当がつかない

class User(AbstractBaseUser, PermissionsMixin): 
    email = models.EmailField(unique=True) 
    username = models.CharField(max_length=40, unique=True) 
    avatar = models.ImageField(blank=True, null=True) 
    date_joined = models.DateTimeField(default=timezone.now) 
    is_active = models.BooleanField(default=True) 
    is_staff = models.BooleanField(default=False) 

    objects = UserManager() 

    USERNAME_FIELD = "email" 
    REQUIRED_FIELDS = ["username", "password"] 

    def __str__(self): 
     return "@{}".format(self.username) 

    def get_short_name(self): 
     return self.username 

は、ここに私のカスタム・ユーザー・モデルです。以前の時点でjob_historyという名前のフィールドを追加しましたが、削除してデータベースを更新しています。このエラーは、ユーザーが以前に完了したジョブを格納できるフィールドを達成するために、ジョブとユーザーのモデルを使いこなしていたときにのみ発生し始めました。さらなる詳細は、thisにあります。

なぜ完全性エラーが発生し、どのように修正するのですか?

+0

からjob_history_id列を削除することができます解決しない場合job_historyフィールドを削除した後、makemigrationsを実行して移行しましたか? –

+0

はい、私はそれを言うだけです: '変化は検出されません '@GagikSukiasyan –

+0

makemigrationを実行してから、あなたのアプリをマイグレートしてください。より良いスタートは' manage.py migrate sites'、次に 'manage.py migrate auth' –

答えて

1

エラーは、あなたのjob_historyフィールドがデータベースに残っていて、なんらかの理由で移行が機能しなかったと表示されます。だから、なぜあなたの移行がうまくいかないかを調べる必要があります。あなたは偽の最初の移行をやって試すことができます:

python manage.py makemigrations app_name 
python manage.py migrate --fake-initial 

私はこれが助けるべきであるかなり確信しているが、これはまた、あなたが常にあなたのDBに直接アクセスし、DB

+0

アプリケーションがまだ配備されていないので、私はデータベースを削除して、移行を再実行し、それは働いた。ありがとう。 –

関連する問題