Преобразование представления на основе функций в представление на основе классов 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.

Вернуться на верх