Я пытаюсь добавить функцию на свой сайт, где определенная часть сайта может использоваться только пользователями, которые подтвердили свою учетную запись электронной почты.
Я нашел решение, но оно не работает.Вот что я сделал: мне предложили добавить для этого отдельную модель:
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" %}
{% if user.account_emailconfirmation.has_verified_email %}
{% block content %}
<style>
</style>
<body>
<div> <p>Here goes a bunch of features</p> </div>
</body>
{% endblock %}
{% else %}
<p> Your email is ot confirmed </p>
{% endif %}
Но это не работает,так как я могу видеть страницу даже без подтверждения своей электронной почты.
Вот как выглядит моя база данных:
Есть таблица с именем account_emailconfirmation
, затем есть индекс, verified
, что даст 0
, если учетная запись не подтверждена, 1
, если подтверждена.
Любой совет приветствуется!