0
我有我創建的用戶配置文件,需要傳遞一些參數以避免IntegrityError
的問題,例如不可空字段。我在頁面底部編寫了我的創建掛鉤here,但是當我撥打create_user
時,我得到完整性錯誤,因爲create_user
正試圖保存剛剛使用未初始化配置文件創建的用戶。我怎樣才能解決這個問題?將字段傳遞給用戶配置文件的post_save掛鉤?
我有我創建的用戶配置文件,需要傳遞一些參數以避免IntegrityError
的問題,例如不可空字段。我在頁面底部編寫了我的創建掛鉤here,但是當我撥打create_user
時,我得到完整性錯誤,因爲create_user
正試圖保存剛剛使用未初始化配置文件創建的用戶。我怎樣才能解決這個問題?將字段傳遞給用戶配置文件的post_save掛鉤?
在提供的鏈接上沒有關於如何自動創建用戶配置文件的詳細信息,所以我不確定您是如何設置它的。然而,這是典型的方式:
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.get_or_create(user=instance)
signals.post_save.connect(create_user_profile, sender=User)
這聽起來像你的問題是,UserProfile
(或等效模型)的附加字段不能爲空,正因爲如此,你要爲這些字段提供值。但是,使用post_save
信號根本無法實現。通常,配置文件中的所有非char字段都可以爲空或提供合理的默認值,因此,至少可以創建沒有特定信息的對象。通過您的界面,您可以強制用戶填寫他們的配置文件,但在數據庫級別執行該操作並不明智。