🔧 Как создать форму Django | Простой Гайд для Начинающих 🔧

Чтобы создать форму в Django, вам нужно выполнить следующие шаги:

  1. Определите класс формы, который наследуется от forms.Form.
  2. Внутри класса формы, определите поля, которые вы хотите отобразить на форме, используя различные поля Django, такие как CharField, IntegerField и т.д.
  3. Добавьте метод clean в класс формы для валидации данных, если необходимо.
  4. Определите представление, которое будет обрабатывать отправку формы. В представлении вы можете использовать метод POST для обработки данных формы и сохранения их, или использовать метод GET для простого отображения формы.
  5. Добавьте маршрут (URL) в файл urls.py вашего проекта, чтобы связать представление с URL-адресом.

Вот пример простой формы Django:

from django import forms

class MyForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()

    def clean(self):
        cleaned_data = super().clean()
        # Дополнительная валидация данных формы
        
        return cleaned_data

В представлении:

from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            # Обработка данных формы
            pass
    else:
        form = MyForm()
    
    return render(request, 'my_template.html', {'form': form})

Не забудьте настроить маршрутизацию в файле urls.py:

from django.urls import path
from .views import my_view

urlpatterns = [
    path('my-url/', my_view, name='my_view'),
]

Детальный ответ

Как сделать форму Django

Формы являются неотъемлемой частью веб-приложений, и Django предоставляет удобные средства для создания и обработки форм. В этой статье я расскажу вам, как сделать форму с использованием Django.

Шаг 1: Создание модели

Прежде чем создавать форму, мы должны определить модель данных, которую она будет использовать. Модель представляет собой класс, который определяет поля и их типы данных. Давайте создадим простую модель Contact с полями name и email.


from django.db import models

class Contact(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()

Шаг 2: Создание формы

Теперь, когда у нас есть модель, мы можем создать соответствующую форму. Форма Django наследуется от класса forms.Form или forms.ModelForm. Давайте создадим форму на основе модели Contact.


from django import forms
from .models import Contact

class ContactForm(forms.ModelForm):
    class Meta:
        model = Contact
        fields = ['name', 'email']

Шаг 3: Отображение формы

Теперь, чтобы отобразить форму на веб-странице, мы должны создать соответствующий шаблон. Давайте создадим файл contact_form.html и добавим следующий код:


<form method="post" action=".">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Отправить</button>
</form>

Шаг 4: Обработка отправленной формы

Когда пользователь заполняет и отправляет форму, мы должны обработать её данные во view. Давайте создадим view contact_view в файле views.py и добавим следующий код:


from django.shortcuts import render, redirect
from .forms import ContactForm

def contact_view(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('success')
    else:
        form = ContactForm()
    return render(request, 'contact_form.html', {'form': form})

Шаг 5: Успешная отправка формы

Наконец, мы должны создать отображение для успешной отправки формы. Создайте view success_view и соответствующий шаблон success.html.

view:


from django.shortcuts import render

def success_view(request):
    return render(request, 'success.html')

template success.html:


<h2>Сообщение успешно отправлено!</h2>

Шаг 6: Подключение URL-ов

Чтобы настроить пути URL для наших views, добавьте следующий код в файл urls.py:


from django.urls import path
from .views import contact_view, success_view

urlpatterns = [
    path('contact/', contact_view, name='contact'),
    path('success/', success_view, name='success'),
]

Шаг 7: Запуск приложения

Теперь, когда мы создали модель, форму, шаблоны, views и настроили URL-ы, мы можем запустить наше Django-приложение. Вам нужно выполнить следующие команды в терминале:


python manage.py makemigrations
python manage.py migrate
python manage.py runserver

Откройте веб-браузер и перейдите по адресу http://localhost:8000/contact, чтобы увидеть форму.

Заключение

В этой статье мы рассмотрели, как создать форму Django на примере модели Contact. Шаг за шагом мы создали модель, форму, шаблон, view и настроили URL-ы. Теперь у вас есть все необходимые знания, чтобы создать свою собственную форму Django.

Видео по теме

#13. Использование форм, не связанных с моделями | Django уроки

Создание формы обратной связи | #10 - Пример создания сайта на Django

5.12 Формы в Django GET POST запросы

Похожие статьи:

🔧 Как создать форму Django | Простой Гайд для Начинающих 🔧

🚦 Django Signals – Что это и как использовать? 🔔