簡體   English   中英

將基於函數的視圖轉換為基於類的視圖 django

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM