2012-08-03 103 views
0

這是非常基本的,但我找不到任何東西。我有以下方式定義的用戶配置文件:Django:保存用戶配置文件

def create_user_info(sender, instance, created, **kwargs): 
    if created: 
     UserInfo.objects.create(user=instance) 

User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0]) 

現在如何設置屬性?

回答

3

首先。猴子補丁User不是正確的方法。在settings.py中設置AUTH_PROFILE_MODULE = 'yourapp.UserInfo',然後您可以自動使用user_instance.get_profile()來獲取配置文件。

因此,然後修改配置文件,你只是做:

profile = user.get_profile() 
profile.some_field = 'some value' 
profile.save() 
+0

謝謝,由於某種原因,所有這些網站說,這是一個更好的辦法(使代碼更清潔),但我改回了什麼Django文檔說。 django1.5中的 – 2012-08-04 00:16:56

+0

AUTH_PROFILE_MODULE已棄用:https://docs.djangoproject.com/en/1.5/ref/settings/#std:setting-AUTH_PROFILE_MODULE – supermario 2013-10-17 20:03:34