Я применил шаблонный фильтр, который извлекает домен из адреса электронной почты.В файле шаблона у меня есть этот код:
{% for email in user_list %}
<p>
{{email.email}} corresponds to this domain:
<b> {{email.email|domain}} </b>
</p>
{% endfor %}
В настоящее время он выделяет жирным шрифтом все доменные имена.Что я хочу сделать, это сделать жирным ТОЛЬКО те адреса электронной почты с «действительным» расширением электронной почты (например, только те, которые находятся в домене «@ gmail.com»).Как мне применить оператор if или ifequal для этого?
Например, это логика, которую я хочу иметь -
{% for email in user_list %}
<p>
{{email.email}} corresponds to this domain:
{% if domain = 'specified extension' %}
<b> {{email.email|domain}} </b>
{% else %}
{{ email.email|domain }}
{% endif %}
</p>
{% endfor %}
Обновление:
ОК - я получил эту работу, создав собственную модель в models.py
, например, -
class Table(models.Model):
name = models.CharField(max_length=50)
email = models.CharField(max_length=50)
def valid_email(self):
verified = ['yahoo.com','gmail.com']
domain = self.email.split('@')[1]
return domain in verified
И в шаблоне index.html
-
{% for email in user_list %}
<p>
{{email.email}} corresponds to this domain:
{% if email.valid_email %}
<b>{{ email.email|domain}}</b>
{% else %}
{{ email.email|domain}}
{% endif %}
</p>
{% endfor %}
Это работаетхорошо, но меня беспокоит то, что когда мне нужно обновить models.py
и вмешаться в проверенный список адресов электронной почты.Где было бы лучше разместить эту функцию valid_emails()
, чтобы я мог легко ее обновить?И как тогда я буду ссылаться на функцию в шаблоне (если она отличается от текущей)?Спасибо.