将Django页面限制为未经验证的帐户

时间:2019-05-19 20:42:20

标签: python django django-templates django-views django-allauth

我正在创建一个Django网站,我希望该网站的某些部分仅限未确认电子邮件地址的用户使用。 基本上,如果您尝试打开X页面并且未确认您的电子邮件,则会收到错误消息。

我找到了解决方案,但是没有用。 这是我所做的: 建议我为此添加一个单独的模型:

class account_emailconfirmation(models.Model):
        user = models.OneToOneField(User, on_delete=models.CASCADE)

        @property
        def has_verified_email(self):
            return self.user.emailaddress_set.filter(verified=True,primary=True).exists()

这是模板的样子:

{% extends "main/header.html" %}


{% block content %}
{% if user.account_emailconfirmation.has_verified_email %}
<style>

</style>

<body>



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



</body>

{% else %}

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

{% endblock %}

当前的解决方案有一个问题:由于某种原因,即使确认了电子邮件,我仍然会收到“未确认”的信息,这应该可以让我在确认电子邮件的情况下查看页面。

这是我的数据库的样子:

有一个名为account_emailconfirmation的表,然后有一个索引verified,该索引在未验证帐户时将提供0,在验证帐户时将提供1

任何建议都值得赞赏!

编辑:它不是this question的重复项。我尝试了该解决方案,但这给我带来了问题,如您从当前问题中所见

0 个答案:

没有答案