【问题标题】:How can i restrict a django template to certain user categories?如何将 django 模板限制为某些用户类别?
【发布时间】:2019-10-23 15:44:22
【问题描述】:

我正在构建一个 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 %}

【问题讨论】:

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


    【解决方案1】:

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

    {% if user.account_emailaddress.verified %}
    

    您可能还想调查django-verified-email-fielddjango-user-accounts 等软件包。

    【讨论】:

    • 嘿!为了处理注册部分,我使用了 Django-Allauth。我已经尝试过您的解决方案,但我总是收到错误“电子邮件未确认”,即使电子邮件已确认,所以某处一定有一些逻辑错误
    • 对,好吧,首先知道这些信息会非常有用! :) 这使它变得非常不同,因为一个用户可以拥有多个带有 allauth 的电子邮件地址,然后您不知道是否所有/所有都经过验证。您想查看stackoverflow.com/questions/54467321/… 和相关答案。
    • 我很抱歉之前没有告诉它!下次我会在我的问题中提供它。感谢您的时间和帮助!
    猜你喜欢
    • 2013-06-03
    • 2012-07-26
    • 2012-10-13
    • 2022-11-12
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    相关资源
    最近更新 更多