5. Контакты¶
Модуль для добавление контактной информации.
5.1. Template tags¶
Подключение тега. Если не указать шаблон, то будет взят по умолчанию. Если не указан name будут выбраны все записи контактов.
{% load contact_tags %} {% contact %}Изменение шаблона
{% contact name='Контакты' template='base/tags/contact/contact_block_tag.html' %}Шаблон для вывода полей контактов и соц. сетей.
<p>{{ contact.name }}</p> '''Поля контактов''' {% for field in contact.get_contact_fields %} <p> {% if field.icon_ui %} '''Иконка''' <span class="{{ field.icon_ui }}"></span> {% elif field.icon %} '''Загруженая иконка''' <img src="{{ field.icon.image.url }}"> {% endif %} '''Поле 1''' {{ field.text|safe }} '''Поле 2''' {{ field.text_two|safe }} </p> {% endfor %} '''Соц. ссылки''' {% for link_soc in contact.get_contact_socnet %} <p> <a href="{{ link_soc.get_link_contact_soc }}"> {% if link_soc.link.icon_ui %} '''Иконка''' <span class="{{ link_soc.link.icon_ui }}"></span> {% elif link_soc.link.icon %} '''Загруженая иконка''' <img src="{{ link_soc.link.icon.image.url }}"> {% else %} ''' Название, если нет иконок''' {{ link_soc.link }} {% endif %} </a> </p> {% endfor %}
5.1.1. for_contact¶
Вывод полей контактов и соц. сетей.
{% for_contact name='Footer' as contact %}
<p>{{ contact.name }}</p>
'''Поля контактов'''
{% for field in contact.get_contact_fields %}
<p>
{% if field.icon_ui %}
'''Иконка'''
<span class="{{ field.icon_ui }}"></span>
{% elif field.icon %}
'''Загруженая иконка'''
<img src="{{ field.icon.image.url }}">
{% endif %}
'''Поле 1'''
{{ field.text|safe }}
'''Поле 2'''
{{ field.text_two|safe }}
</p>
{% endfor %}
'''Соц. ссылки'''
{% for link_soc in contact.get_contact_socnet %}
<a href="{{ link_soc.get_link_contact_soc }}">
{% if link_soc.link.icon_ui %}
<span class="{{ link_soc.link.icon_ui }}"></span>
{% elif link_soc.link.icon %}
<img src="{{ link_soc.link.icon.image.url }}">
{% else %}
{{ link_soc.link }}
{% endif %}
</a>
{% endfor %}
5.1.2. Генерация формы обратной связи:¶
В теге {% gen_form %} укажите поля которые хоите рендерить. Если не указвать поля, отредерятся все.
Для редиректа после отправки формы вставьте скрытое поле <input name=»next» hidden value=»адрес редиректа»>
Для защиты от спама используйте поле <input name=»honeypot» hidden value=»»> Форма включает поле «honeypot». Это ловушка: если в это поле будут введены какие-либо данные, форма будет считаться спамом (спаммеры часто автоматически заполняют все поля, пытаясь сделать правильные представления).
<form action="{% url 'contact:feedback_gen' %}" method="post">
{% csrf_token %}
{% gen_form "full_name" "phone" as form %}
{{ form }}
<input name="next" hidden value="{{request.path}}">
<input name="honeypot" hidden value="">
<input type="submit" name="" value="Submit" />
</form>
5.2. Поля¶
5.2.1. Поля модели контактов¶
name (max_length=100): Название description (max_length=5000): Описание map = (max_length=10000): Карта slug (max_length=100, unique=True): URL
5.2.2. Поля контактов¶
text (max_length=1000): Поле 1 text_two (max_length=1000): Поле 2 icon_ui (max_length=500): Класс иконки icon (upload_to=»icon/»): Иконка contact ForeignKey: Связь с моделью Контакты
5.2.3. Поля соц. сети контактов¶
contact_soc (ForeignKey): Связь с моделью Контакты your_id (max_length=100): Ваша ссылка link (ForeignKey): Связь с моделью Соц. сеть
5.2.4. Поля формы обратной связи¶
full_name = CharField(max_length=100): ФИО email = EmailField(max_length=150): Почта phone = CharField(max_length=14): Телефон subject = CharField(max_length=150): Тема message = TextField(max_length=1000): Сообщение date = DateTimeField(auto_now_add=True): Дата