2017-01-17 1 views
0

이 자습서는 about ajax and crud입니다. 이 튜토리얼에서는 함수 기반 뷰 접근법을 사용한다. 대신 클래스 기반 뷰를 사용하고 싶다.클래스 기반 뷰를 사용하여이 함수 기반 뷰를 처리하는 방법은 무엇입니까?

def book_create(request): 
    data = dict() 

    if request.method == 'POST': 
     form = BookForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      data['form_is_valid'] = True 
      books = Book.objects.all() 
      data['html_book_list'] = render_to_string('books/includes/partial_book_list.html', { 
       'books': books 
      }) 
     else: 
      data['form_is_valid'] = False 
    else: 
     form = BookForm() 

    context = {'form': form} 
    data['html_form'] = render_to_string('books/includes/partial_book_create.html', 
     context, 
     request=request 
    ) 
    return JsonResponse(data) 

답변

0

이것은 사례를 기반으로 한 클래스 기반보기의 예입니다.

from django.views import View 

class BookCreateView(View): 

    def post(self, request): 
     form = BookForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      data['form_is_valid'] = True 
      books = Book.objects.all() 
      data['html_book_list'] = render_to_string('books/includes/partial_book_list.html', { 
       'books': books 
      }) 
     else: 
      data['form_is_valid'] = False 
     context = {'form': form} 
     data['html_form'] = render_to_string('books/includes/partial_book_create.html', 
      context, 
      request=request 
     ) 
     return JsonResponse(data) 

    def get(self, request): 
     data = dict() 
     form = BookForm() 
     context = {'form': form} 
     data['html_form'] = render_to_string('books/includes/partial_book_create.html', 
      context, 
      request=request 
     ) 
     return JsonResponse(data) 
관련 문제