与此问题类似: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 }}
这不起作用。
答案 0 :(得分:0)
如果在模型Profile1
中定义了avator,那么您可以执行{{ 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()
。