📅  最后修改于: 2023-12-03 15:30:50.935000             🧑  作者: Mango
在 Django 中,视图是处理请求并在响应中返回 HTTP 响应的函数,而基于类的视图是一种更复杂和更灵活的方式来定义视图。FormView 是 Django 中基于类的视图之一,它显示一个表单,并在提交表单时验证数据并执行其他相关操作。
使用 FormView 需要将其子类化并提供以下属性和方法:
下面是一个简单的例子:
from django import forms
from django.views.generic.edit import FormView
from django.urls import reverse_lazy
class ContactForm(forms.Form):
name = forms.CharField()
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
class ContactView(FormView):
template_name = 'contact.html'
form_class = ContactForm
success_url = reverse_lazy('success')
def form_valid(self, form):
# 处理表单提交成功逻辑
return super().form_valid(form)
def form_invalid(self, form):
# 处理表单提交失败逻辑
return super().form_invalid(form)
以上就是 FormView 的基本用法和注意事项,通过继承它并重写相应的属性和方法,可以方便地自定义表单的验证逻辑和错误返回页面。