我正在创建一个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的重复项。我尝试了该解决方案,但这给我带来了问题,如您从当前问题中所见