2

私が定義した User クラスを使用してうまく動作するアプリケーションがありました。これに数週間取り組んだ後、ユーザー認証が必要であることに気付き、代わりに django の User クラスを使用することにしました (私は Django を初めて使用したため、始めたときはこれがどのように機能するのかよくわかりませんでした)。カスタム User クラスへの ForeignKey リレーションを取り除き、ForeignKey リレーションを に追加しましたがdjango.contrib.auth.models.User、管理ページを使用して新しいオブジェクトを追加すると、次のようになります。

Exception Type: IntegrityError at /admin/po/purchaseorder/add/
Exception Value: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`po`.`po_purchaseorder`, CONSTRAINT `django_user_id_refs_id_fe5f38af` FOREIGN KEY (`django_user_id`) REFERENCES `auth_user` (`id`))')

私は本当にこのエラーを理解していません。関連するクラスコードは次のとおりです。

from django.contrib.auth.models import User

class PurchaseOrder(models.Model):
    user=models.ForeignKey(User)
    request_number = models.AutoField(primary_key=True)
    #More fields 

誰でもこのエラーについて説明できますか?また、自分のクラスではなく、組み込みのユーザーを使用しているのになぜエラーが発生するのですか?

4

1 に答える 1

3

modelsDjango のユーザー定義を含めるように を更新したが、データベースをまだ更新していない可能性があります。

IntegrityErrorsクエリを実行すると、データベースで何らかの制約に違反することを意味します。データベーススキーマ別名を更新するとうまくいくと確信していますpython manage.py syncdb

スキーマを削除して再度作成できる場合は、それで解決する可能性があります。そうでない場合は、モデルが表す変更されたテーブルを更新してください。

お役に立てれば!

于 2013-06-24T15:31:20.563 に答える