Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created May 12, 2026 08:21
Show Gist options
  • Select an option

  • Save sunmeat/4323efccaf75231ee64a6ff0db6ff572 to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/4323efccaf75231ee64a6ff0db6ff572 to your computer and use it in GitHub Desktop.
Різні способи рендерингу Django форм
{% extends "app/layout.html" %}
{% block content %}
<div class="container mt-5">
<h2>{{ title|default:"Заявка на консультацію" }}</h2>
<p class="text-muted">Різні способи рендерингу Django форм</p>
<hr>
{% if messages %}
{% for msg in messages %}
<div class="alert alert-success">{{ msg }}</div>
{% endfor %}
{% endif %}
<form method="post" class="row g-4">
{% csrf_token %}
<!----------------------------------------------------------------->
<h4 class="mt-4">1. Швидкі вбудовані методи Django</h4>
<div class="col-12">
<div class="mb-4">
<strong>{{ form.as_p }}</strong>
</div>
{# Інші варіанти: #}
{# {{ form.as_ul }} #}
{# {{ form.as_table }} #}
</div>
<hr>
<!----------------------------------------------------------------->
<h4>2. Ручний рендеринг (більше контролю, але більше коду)</h4>
{% for field in form %}
{% if field.name != 'newsletter' and field.name != 'message' %}
<div class="col-md-6">
<div class="mb-3">
{{ field.label_tag }}
{{ field }}
{% if field.help_text %}
<small class="form-text text-muted">{{ field.help_text }}</small>
{% endif %}
{{ field.errors }}
</div>
</div>
{% endif %}
{% endfor %}
<!----------------------------------------------------------------->
<br /><br /><br /><br /> <br /><br /><br /><br />
<br /><br /><br /><br /> <br /><br /><br /><br />
<br /><br /><br /><br />
<hr />
<h4 style="margin-top: 50px;">3. Повністю ручний рендеринг (корисно для складних форм або кастомного дизайну)</h4>
<div class="col-md-6">
<div class="mb-3">
{{ form.full_name.label_tag }}
{{ form.full_name }}
{{ form.full_name.errors }}
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
{{ form.email.label_tag }}
{{ form.email }}
{{ form.email.errors }}
</div>
</div>
<div class="col-12 mt-4">
<br /><br /><br /><br />
<button type="submit" class="btn btn-primary btn-lg px-5">
Надіслати заявку
</button>
</div>
</form>
</div>
{% endblock %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment