我有兩個模型,School和UserProfiles,其中UserProfiles具有一個到學校的ForeignKey。在Django Admin中,我希望能夠選擇一所學校並讓它顯示所有具有外鍵的用戶配置文件。在Django Admin中添加/編輯內聯外鍵字段的問題
我這樣做的方式是創建一個新的Inline,其中的模型是UserProfile,並將其添加到新的SchoolAdmin並註冊它。
當我去添加一個新的用戶配置文件時,出現了問題。會發生什麼是我從下拉框中選擇一個現有的用戶,然後點擊保存。但是,然後我得到一個錯誤,指出「此用戶的用戶配置文件已存在」。
看來,保存後,它會嘗試爲我選擇的用戶創建一個新的用戶配置文件。我是否正在做這個錯誤的方式?
這是我設置的代碼,用於在創建用戶時自動創建用戶配置文件。
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)
編輯:作爲一個側面說明,我該如何去跟蹤程序流調試?我發現很難處理打印報表。
實施WERKZEUG調試器構建的,我補充說我使用的代碼自動創建用戶配置文件。但是,有趣的是,當我得到錯誤時,我的打印語句都不會被執行。 – CCSab
是的,你有別的事情在別的地方最有可能是因爲這似乎是一個安全的調用get_or_create,所以你的代碼(或第三方應用程序)中最有可能做的事情是不應該。 – John
我正在使用的唯一第三方應用是South,以處理遷移。不知道這是否會成爲問題。 – CCSab