0

私は追加のフィールドで認証Userモデルを拡張しています。

class ExtendedUser(models.Model):
    user = models.OneToOneField(User)
    .... #other fields#

私は以下の方法でそれらを作成します。

base_user = User(username =  'username', password = 'password', email = 'user@mail.com')
extended_user = ExtendedUser(user = base_user, ...#other fields#)

そのシナリオでuser_idは、 は設定されていません。base_user をデータベースに保存しようとすると、エラーが発生します。

extended_user.save()
#Exception traceback
... user_id may not be NULL

私を悩ませているのは、次のことで問題が解決することです。

extended_user.user_id = extended_user.user.id

これは、カスタムの OneToOne 関係に対して自動的に行われました。に関する何かが欠けていますか、Userそれともバグですか?

4

1 に答える 1