私は2つのモデル、SchoolProfileとUserProfilesを持っています。ここで、UserProfilesにはForeignKey to Schoolがあります。 Django Adminでは、私は学校を選び、外部キーを持っているすべてのuserprofilesを表示させたいと思っています。Django管理者のインライン外部キーフィールドの追加/編集に関する問題
私がやったやり方は、モデルがUserProfileである新しいInlineを作成し、それを新しいSchoolAdminに追加して登録することでした。
私は新しいuserprofileを追加するときに問題が発生します。何が起こるかは、ドロップダウンボックスから既存のユーザーを選択して[保存]をクリックすることです。しかし、「このユーザーのユーザープロファイルは既に存在します」というエラーが表示されます。
保存すると、自分が選択したユーザーの新しいユーザープロファイルを作成しようとしているようです。私はこれを間違ったやり方にするつもりですか?
ここでは、ユーザー作成時にユーザープロファイルを自動作成するように設定したコードを示します。
def create_user_profile(sender, instance, created, **kwargs):
"""Create the UserProfile when a new User is saved"""
print "User Profile Creation: False"
if created:
print "User Profile Creation: ", created
UserProfile.objects.get_or_create(user=instance)
post_save.connect(create_user_profile, sender=User)
EDIT:デバッグのためにプログラムフローをトレースするにはどうすればいいですか?私は単なる印刷ステートメントを扱うのが難しいと思う。
にWERKZEUGデバッガビルドの実装だとあなたはhttp://packages.python.org/django-extensions/を試みることができるデバッグ:トレース用として
ユーザープロファイルの自動作成しかし、エラーが発生したときに私のprintステートメントが実行されないのは面白いことです。 – CCSab
ええ、あなたはget_or_createを使って安全な呼び出しを行うように思われるので、他のどこかで他の何かが起きている可能性が高いので、コード(またはサードパーティのアプリケーション) 。 – John
私が使用している唯一のサードパーティのアプリケーションは、移行を処理するためのSouthです。これが問題になるかどうかは不明です。 – CCSab