2017-01-17 2 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) 
関連する問題