get_success_json()
函数是Django中通用视图类的一个方法,用于处理成功之后返回json数据的情况。该方法返回一个字典对象,包含需要返回的数据,通常包括表单数据和一些自定义的响应信息,如消息提示、状态码等。
使用方法:
首先在通用视图类中重写get_success_json()
方法,并返回需要返回的数据。然后在视图中直接调用get_success_json()
方法即可。需要注意的是,该方法只能返回json数据,如果需要返回其他类型的响应,需要使用其他方法。
下面给出两个示例:
示例一:返回一个简单的json响应
from django.views.generic.edit import CreateView
from django.http import JsonResponse
from .models import Book
class BookCreateView(CreateView):
model = Book
fields = ['title', 'author', 'price']
def form_valid(self, form):
self.object = form.save()
return JsonResponse(self.get_success_json())
def get_success_json(self):
data = {
'success': True,
'message': '书籍添加成功!'
}
return data
以上BookCreateView是一个添加书籍的视图类,在执行form_valid时,我们先保存表单数据,然后使用JsonResponse方法进行字典对象的转换返回,这里使用了get_success_json方法来实现。
示例二:增加状态码及自定义响应消息
from django.views.generic.edit import CreateView
from django.http import JsonResponse
from .models import Book
class BookCreateView(CreateView):
model = Book
fields = ['title', 'author', 'price']
def form_valid(self, form):
self.object = form.save()
return JsonResponse(self.get_success_json(), status=201)
def get_success_json(self):
data = {
'success': True,
'message': '书籍添加成功!',
'status_code': 201
}
return data
以上代码中,我们在JsonResponse方法中增加了第二个参数status来指定响应状态码,同时在get_success_json方法中增加了一个自定义的状态码。