[英]convert function based view to class based view django
我试图通过变量中的 POST 方法获取表单数据,然后尝试验证它。 我已经使用基于 django 函数的视图完成了它。 但现在我想将它转换为基于 django 类的 vied。 因此,任何人都可以帮助将我的以下代码转换为基于 django 类的视图。
from .forms import contact_form
def contact_us(request):
if request.method == "POST":
form = contact_form(request.POST)
# return HttpResponse(form)
if form.is_valid():
return HttpResponse("Data is valid")
else:
return HttpResponse("Data is invalid")
我的想法基本上如下:'''
from django.views.generic.edit import FormView
from .forms import ContactForm
class ContactUsView(FormView):
def post(self , request):
# this method will handle event when reques is come through POST method
def get(delf , request):
# this method will handle event when reques is come through POST method
'''
您可以使用FormView
[Django-doc] :
from django.views.generic.edit import FormView
from .forms import contact_form
class ContactUsView(FormView):
form_class = contact_form
template_name = ''
def form_valid(self, form):
return HttpResponse('Data is valid')
def form_invalid(self, form):
return HttpResponse('Data is invalid')
对于 GET 请求,默认行为是使用指定form_class
的表单对象作为form
变量呈现template_name
。
注意:Django 中的表单是用PascalCase编写的,而不是snake_case ,因此您可能希望将模型从
重命名为contact_form
ContactForm
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.