0

この質問に似ています: django の AUTH_PROFILE_MODULE を使用して 2 つのプロファイル モデルを持つことは可能ですか?

しかし、必要なものを取得するためにdjangoテンプレートタグを使用しようとしています.

2 つのプロファイルがあります。

class Profile1(models.Model):
    user = models.ForeignKey(User, null=True, unique=True)
    avatar = models.ImageField(upload_to='avatars/users/', null=True, blank=True)
    ... More fields ...
class Profile2(models.Model):
    user = models.ForeignKey(User, null=True, unique=True)
    avatar = models.ImageField(upload_to='avatars/users/', null=True, blank=True)
    ... More fields ...

AUTH_PROFILE_MODULE = 'profiles.UserProfile'

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    profile1 = models.ForeignKey(Profile1, related_name="profile1")
    profile2 = models.ForeignKey(Profile2, related_name="profile2")
    # Each user can essentially have more than one profile.

では、テンプレート タグ内で get_profile() を使用してユーザー プロファイルを取得するにはどうすればよいでしょうか。つまり、プロファイルのユーザーのアバターを取得しようとしている場合...

{{ comment.user.get_profile.avatar }}

これはうまくいきません。

4

1 に答える 1

0

アバターがモデルで定義されている場合は、次のProfile1ことができます{{ comment.user.get_profile.profile1.avatar }}

get_profileインスタンスを返しUserProfileます。

私があなただったら、次のように個々のプロファイルに related_name を追加します。

class Profile1(models.Model):
    user = models.ForeignKey(User, null=True, unique=True, related_name='profile_1')
    ... More fields ...
class Profile2(models.Model):
    user = models.ForeignKey(User, null=True, unique=True, related_name='profile_2')
    ... More fields ...

その後user.profile_1.avatar、通過するのではなく実行しget_profile()ます。

于 2012-07-25T21:51:08.240 に答える