0

类似于这个问题:Is it possible to have 2 profile models using django's AUTH_PROFILE_MODULE

但我正在尝试使用 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

如果在模型中定义了 avatorProfile1那么你可以这样做{{ comment.user.get_profile.profile1.avatar }}

get_profile将返回UserProfile实例。

如果我是你,我会在个人资料中添加相关名称,如下所示:

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 回答