Для создания подобной формы в Django, вам необходимо выполнить несколько шагов.
1. Создайте модель, которая будет представлять данные формы. Создайте новый файл models.py в вашем Django приложении и определите модель с необходимыми полями. Например:
from django.db import models class ContactForm(models.Model): name = models.CharField(max_length=100) email = models.EmailField() message = models.TextField() # добавьте другие поля, если необходимо
2. Создайте форму на основе модели. Создайте новый файл forms.py в вашем Django приложении и определите форму для модели. Например:
from django import forms from .models import ContactForm class ContactFormModelForm(forms.ModelForm): class Meta: model = ContactForm fields = ('name', 'email', 'message') # добавьте другие поля, если необходимо
3. Создайте представление, которое будет отображать форму. В вашем представлении, вы можете использовать ContactFormModelForm и предоставить его как контекст шаблону. Например:
from django.shortcuts import render from .forms import ContactFormModelForm def contact_view(request): form = ContactFormModelForm(request.POST or None) if form.is_valid(): form.save() form = ContactFormModelForm() # очистка формы после успешного сохранения context = {'form': form} return render(request, 'contact.html', context)
4. Создайте шаблон для визуализации формы. Создайте файл contact.html в папке templates вашего Django приложения. Например:
<form method="post" action=""> {% csrf_token %} {{ form.as_p }} <button type="submit">Отправить</button> </form>
В этом шаблоне мы использовали form.as_p
, чтобы отобразить все поля формы в видеотдельных параграфов. Вы можете использовать другие методы, такие как form.as_table
или form.as_ul
, в зависимости от предпочтений стилизации.
5. Настройте URL маршрутизацию. В файле urls.py вашего Django приложения добавьте путь к представлению, которое будет обрабатывать форму. Например:
from django.urls import path from .views import contact_view app_name = 'your_app_name' urlpatterns = [ path('contact/', contact_view, name='contact'), # добавьте другие пути, если необходимо ]
Теперь у вас должна быть полностью функционирующая форма контактов в вашем Django приложении. Пользователи смогут вводить данные и отправлять их на сервер. Вы можете дополнить базовую реализацию этой формы добавлением валидации, обработку успешной отправки и другие дополнительные функции, в зависимости от ваших потребностей.