如何将Django模板限制为某些用户类别?

时间:2019-06-08 11:50:13

标签: python django django-models django-views django-users

我正在构建一个Django网站,用户可以在其中注册并做一些事情。注册后,应确认电子邮件。

以下是确认用户的方式:在我的数据库中,我添加了一个名为account_emailaddress的表。此表中的verified列将在未确认电子邮件地址时显示0,在确认电子邮件地址时显示1

现在,我有一个模板,当电子邮件地址等于0时,该模板应该引发错误。

这完全可行吗?我不知道该怎么做,所以有人可以指导我这样做吗?我使用的不是我自己编辑的自定义用户模型,而是Django用户模型。

这是模板的样子:

我假设需要通过添加类似于以下内容的if语句在模板文件中对此进行排序:

{% block content %}
{% if email_is_confirmed %}
<style>

</style>

<body>

<p> CONFIRMED </p>

<div> <p>Here goes a bunch of features</p> </div>       



</body>

{% else %}

<p> Your email is not confirmed </p>
{% endif %}
{% endblock %}

1 个答案:

答案 0 :(得分:1)

您没有说account_emailaddress表如何链接到您的用户,无论该表具有用户表的外键还是电子邮件地址的列。我假设它是与用户一对一链接的。在这种情况下,您可以在模板中以user的身份访问已登录用户的对象,并可以像使用任何Django查找一样访问链接的表,例如user.account_emailaddress.verified(或您将related_name设置为的任何值)。在模板中将是:

{% if user.account_emailaddress.verified %}

您可能还想研究诸如django-verified-email-fielddjango-user-accounts之类的软件包。