Last active
May 12, 2026 10:37
-
-
Save sunmeat/cf6f94bbdaba5c9b8ffaf440d354ea78 to your computer and use it in GitHub Desktop.
отримання даних форми Django
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| contact.html: | |
| {% extends "app/layout.html" %} | |
| {% load static %} | |
| {% block content %} | |
| <link rel="stylesheet" href="{% static 'app/css/styles.css' %}"> | |
| <div class="container mt-5"> | |
| <h2>{{ title|default:"Заявка на консультацію" }}</h2> | |
| <hr> | |
| <form method="post" class="row g-3"> | |
| {% csrf_token %} | |
| <div class="col-12"> | |
| {{ form.as_div }} | |
| </div> | |
| <div class="col-12 mt-4"> | |
| <br /> | |
| <button type="submit" class="btn btn-primary btn-lg px-5"> | |
| Надіслати заявку | |
| </button> | |
| </div> | |
| </form> | |
| </div> | |
| {% endblock %} | |
| ============================================================================================================================== | |
| views.py: | |
| from datetime import datetime | |
| from django.http import HttpRequest | |
| from django.shortcuts import render, redirect | |
| from django.contrib import messages | |
| from .forms import ContactForm | |
| def contact(request): | |
| """Обробка форми зворотнього зв'язку""" | |
| if request.method == 'POST': | |
| form = ContactForm(request.POST) | |
| if form.is_valid(): | |
| # красивий вивід в консоль | |
| print("\n" + "="*60) | |
| print("НОВЕ ПОВІДОМЛЕННЯ З ФОРМИ ОТРИМАНО!") | |
| print("="*60) | |
| print(f"Дата та час: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") | |
| print("-" * 60) | |
| for field_name, value in form.cleaned_data.items(): | |
| if value is None or value == '': | |
| value = "—" | |
| # красивий вивід назв полів | |
| label = form.fields[field_name].label or field_name | |
| print(f"{label:35} : {value}") | |
| print("="*60 + "\n") | |
| # повідомлення користувачу | |
| messages.success(request, 'Ваша заявка успішно надіслана! Дякуємо.') | |
| return redirect('home') # або 'contact', якщо треба залишитись на сторінці з формою | |
| else: | |
| # якщо є помилки валідації | |
| messages.error(request, 'Будь ласка, виправте помилки у формі.') | |
| else: | |
| # GET-запит - порожня форма | |
| form = ContactForm() | |
| return render(request, 'app/contact.html', { | |
| 'form': form, | |
| 'title': 'Надішліть ваше повідомлення', | |
| 'year': datetime.now().year, | |
| }) | |
| def home(request): | |
| """Renders the home page.""" | |
| assert isinstance(request, HttpRequest) | |
| return render( | |
| request, | |
| 'app/index.html', | |
| { | |
| 'title': 'Home Page', | |
| 'year': datetime.now().year, | |
| } | |
| ) | |
| def about(request): | |
| """Renders the about page.""" | |
| assert isinstance(request, HttpRequest) | |
| return render( | |
| request, | |
| 'app/about.html', | |
| { | |
| 'title': 'About', | |
| 'message': 'Your application description page.', | |
| 'year': datetime.now().year, | |
| } | |
| ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.