0

有没有办法从模板中的 userena 个人资料中获取个人资料信息?是否有某种变量自动传递?

例如:我可以像这样获取 django 用户变量:

{% if user.is_authenticated %}
   Hey {{ user.username }}.
{% endif %}

因为这是随每个请求一起传递的。

是否有一种内置方法可以对 userena 配置文件执行相同操作,而无需为每个视图传递配置文件?理想情况下,我想做某事。像这样:

{% if user.is_authenticated %}
    {% if user.profile.likes_cookies %}
       Hey cookiemonster
    {% endif %}
{% endif %}
4

1 回答 1

2

您可以直接在模板中访问用户的个人资料。

假设我已将我的 userena 配置文件定义如下:

class MyProfile(UserenaBaseProfile):
    user = models.OneToOneField(User,
                                unique=True,
                                verbose_name=_("user"),
                                related_name="my_profile")
    # Example of adding additional fields below.
    likes_cookies = models.BooleanField(_("likes cookies"))

OneToOneField 上的related_name 与 User 类是这里的重要部分,因为它是您访问 userena 配置文件的方式。

现在在模板中,您将能够访问配置文件,如下所示:

{% if user.is_authenticated %}
    {% if user.my_profile.likes_cookies %}
       Hey cookiemonster
    {% endif %}
{% endif %}
于 2013-01-27T02:59:26.527 回答