我正在使用 django 和 django rest 框架。请告诉我,我怎样才能将对象传输到序列化器而不是从模型中,而是从常规字典中传输?
可序列化对象:
class SerializerClass:
def __init__(self, **entries):
self.__dict__.update(dictonary=entries['dict_example'])
exmaple = SerializerClass(dict_example={'a': 'aaaaa', 'b': 'bbbbb'})
序列化器:
class MySerializer(Serializer):
my_list = DictField(child=CharField())
视图集:
class MyViewSet(ListModelMixin):
http_method_names = ['get']
queryset = exmaple.dict_example
permission_classes = [AllowAny]
serializer_class = MySerializer
我需要在获取请求时显示字典的内容。它目前因错误而崩溃AttributeError 'dict' object has no attribute 'model'。如果我理解正确,那么你需要定义你的 SerializerClass 模型,如果是这样,怎么做?
要解决此问题,可以使用以下选项:
1) 不使用序列化器,viewSet 将如下所示:
路线将如下所示:
在这种情况下,输出将如下所示:
2)使用序列化器(带有对象的字典在这里被序列化):序列化器将如下所示:
viewSet 将如下所示:
路线与前一种情况相同:
在这种情况下,输出将是这样的: