РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
311 of 818 menu

Атрибут form_class

Атрибут form_class применяется к классу FormView и определяет класс формы Django, который будет использоваться для отображения полей ввода и обработки данных. Этот атрибут является обязательным для работы представления. Класс формы должен наследоваться от forms.Form или forms.ModelForm.

Синтаксис

class MyFormView(FormView): form_class = MyForm

Пример

Давайте создадим представление для формы обратной связи с использованием form_class:

from django import forms from django.views.generic import FormView from django.shortcuts import redirect from django.urls import reverse_lazy class ContactForm(forms.Form): name = forms.CharField(max_length=100) email = forms.EmailField() message = forms.CharField(widget=forms.Textarea) class ContactFormView(FormView): template_name = 'contact.html' form_class = ContactForm success_url = reverse_lazy('thanks') def form_valid(self, form): # Process the form data name = form.cleaned_data['name'] email = form.cleaned_data['email'] message = form.cleaned_data['message'] print(f"Received message from {name} ({email}): {message}") return super().form_valid(form)

Результат выполнения кода при успешной отправке:

"Received message from John Doe (john@example.com): Hello!"

Пример

Давайте используем form_class с моделью и создадим форму для регистрации пользователя:

from django import forms from django.views.generic import FormView from django.contrib.auth.models import User from django.contrib.auth.forms import UserCreationForm from django.urls import reverse_lazy class RegistrationForm(UserCreationForm): email = forms.EmailField(required=True) class Meta: model = User fields = ['username', 'email', 'password1', 'password2'] class RegisterView(FormView): template_name = 'register.html' form_class = RegistrationForm success_url = reverse_lazy('login') def form_valid(self, form): user = form.save() print(f"User created: {user.username}") return super().form_valid(form)

Результат выполнения кода:

"User created: john_doe"

Смотрите также

  • атрибут success_url,
    который задает URL для перенаправления после успешной отправки формы
  • метод get_form,
    который возвращает экземпляр формы для отображения
  • метод form_valid,
    который вызывается при успешной валидации формы
  • класс CreateView,
    который упрощает создание объектов через ModelForm
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить