Преобразование представления на основе функций в представление на основе классов django
Я пытаюсь получить данные формы методом POST в переменную и затем попытаться проверить их. Я сделал это с помощью django function based view. Но теперь я хочу преобразовать его в представление на основе класса django. Так что может ли кто-нибудь помочь преобразовать мой следующий код в представление на основе класса 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
def form_valid(self, form):
return HttpResponse('Data is valid')
def form_invalid(self, form):
return HttpResponse('Data is invalid')
Примечание: Формы в Django пишутся в PascalCase, а не snake_case, поэтому вы можете переименовать модель из
вcontact_form
ContactForm
.