0

UserProfile の作成方法に関する Django ドキュメントに示されているように、ユーザーとの OneToOne / Unique ForeignKey 関係を持つ django モデルがあるとします。:

ここで、ユーザーを取得できるリクエストを受け取るビュー メソッドがあるとします。そのユーザーに関連付けられたプロファイルを照会する最良の方法は何ですか?

from django.contrib.auth.models import User

# sample user profile model associated with user
class UserProfile(models.Model):
    likes_spam = models.BooleanField()
    user = models.OneToOneField(User)

#view method
def forward_to_practice_home(request):
    user = request.user
    profile_for_user = #insert code here that would get the profile for that user
4

3 に答える 3

2

related_namesはとても役に立ちます。ユーザー プロファイルの定義を次のように変更した場合:

class UserProfile(models.Model):
    likes_spam = models.BooleanField()
    user = models.OneToOneField(User, related_name='profile')

次に、次のようにプロファイルを使用できます。

def forward_to_practice_home(request):
    user = request.user
    profile_for_user = user.profile
于 2012-10-03T02:37:44.680 に答える
1

UserProfile.objects.get(user=user)

于 2012-10-03T02:37:15.783 に答える
0

get_profile()という特別なメソッドを使用できます。

profile_for_user = user.get_profile()

settings.py でAUTH_PROFILE_MODULEを設定する必要があることに注意してください。

ただし、これはユーザー モデルのカスタマイズのサポートを追加するため、Django 1.5 では非推奨です。

于 2012-10-03T08:52:39.007 に答える