0
我使用配置文件在Django中擴展了用戶模型。如你所知,創建一個新用戶沒有創建鏈接到該用戶的新的配置文件,所以我們需要添加一個輔助方法,像這樣:將方法添加到Django配置文件
class UserProfile(models.Model):
user = models.OneToOneField(User)
field_to_be_updated = models.DateTimeField(auto_now_add=True)
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u))
這工作不錯,但我想能夠以這種方式調用UserProfile類中的update_a_field方法,例如User.objects.all[0].profile.update_a_field()
或者其他類似的方法。
我試圖創建一個Manager到UserProfile類無濟於事。它只是不承認我附加到課堂上的方法。看來UserProfile不是一個常規模型,因爲它不能被UserProfile.objects所接受...
那麼,如何添加方法來更新UserProfile實例?我應該向User模型添加一個方法,然後以這種方式訪問UserProfile ?.
謝謝您的回答!讓我試試看。 –
哇,它的作品!這很奇怪!。順便說一句,您的第一個選項可能無法與User.profile屬性在保存時獲取新實例相關嗎? –