0
在我的模型的视图集中,我创建了一个自定义端点,并试图序列化一些快速元信息发送出去。具有基本串行器的自定义端点?
端点声明:
@list_route(methods=['get'], url_path='meta')
def get_meta_details(self, request):
serializer = ThingMetaSerializer
return Response(serializer.data)
ThingMetaSerializer:
class ThingMetaSerializer(serializers.Serializer):
some_data = serializers.SerializerMethodField(method_name='ret_zero')
def ret_zero(self):
return 0
我每次运行终点,我得到以下错误:
TypeError(repr(o) + " is not JSON serializable")
任何想法,我怎样才能使这项工作?
编辑:
我在视图集中使用下面的代码做这项工作:
meta_data = {
'some_data': 0,
}
@list_route(methods=['get'], url_path='meta')
def get_meta_details(self, request):
# do some calculations
return JsonResponse(self.meta_data)
但是这种方法并不能自动生成到Django的RF架构。如果有更好的方法来做到这一点,我很想知道。
您需要获取Thing的实例并将其传递给序列化程序。 –