Я думаю, что лучше всего ввести логин в ваш CustomUser Model
:
class CustomUser(AbstractUser):
@property
def has_verified_email(self):
return self.emailaddress_set.filter(verified=True,primary=True).exists()
Затем используйте в шаблоне:
{% if user.has_verified_email %}
// some lines
{% endif %}
Если вы не изменили свою модель User, вы можете поместить ее в отдельную модель, которая имеет отношение OneToOne к вашей модели User:
class Profile(models.Model):
user = models.OneToOneField(User)
@property
def has_verified_email(self):
return self.user.emailaddress_set.filter(verified=True,primary=True).exists()
Затем используйте ее в шаблоне:
{% if user.profile.has_verified_email %}
// some lines
{% endif %}
Второй лучший вариант - использовать в View, но вам нужно будет использовать одинаковую логику в каждом представлении.Если вы используете представление на основе классов, вы можете создать миксин и использовать его в них:
class SomeMixin(object):
def get_context_data(self, *args, **kwargs):
context = super(SomeMixin, self).get_context_data(*args, **kwargs)
context['has_verified_email'] = self.request.user.emailaddress_set.filter(verified=True,primary=True).exists()
return context
class ActualView(SomeMixin, TemplateView):
# subclassing from the mixin in
// template code
{% if has_verified_email %}
// some lines
{% endif %}