2012-01-20 13 views
0

プロファイルを使用してDjangoでUserモデルを拡張しました。ご存知のように、新しいユーザーを作成すると、そのユーザーにリンクされている新しいプロファイルを作成するので、私たちは、このような補助方法、何か追加する必要はありません。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)) 

素晴らしい作品が、私はしたいのですがUser.objects.all[0].profile.update_a_field()やそのようなやり方で、UserProfileクラス内のupdate_a_fieldメソッドを呼び出すことができます。

ManagerProfileクラスを作成して、無駄にしようとしました。クラスに添付するメソッドは認識されません。 UserProfileは通常のモデルではないようですが、UserProfile.objectsにアクセスすることはできません...

UserProfileインスタンスを更新する方法を追加するにはどうすればよいですか?ユーザーモデルにメソッドを追加し、その方法でUserProfileにアクセスする必要がありますか。

答えて

1

私は正確な理由はわからないが、私の経験がある:

user.profile.field = "value" 
user.profile.save() 

動作しないは、あなたの答えのために働く

profile = user.profile 
profile.field = "value" 
profile.save() 
+0

感謝をDOES!私はそれを試してみましょう。 –

+0

うわー、それは動作します!それは変だ!。ちなみに、保存したときに新しいインスタンスを取得するUser.profileプロパティに、最初のオプションが機能していない可能性がありますか? –

関連する問題