我使用djangorestframework,当我序列化模型对象列表时,serializer.data是有效的,但是当我仅序列化模型对象时,serializer.data为空{},为什么?
型号:
class WindowInfo(models.Model):
user = models.ForeignKey(WxAccount, on_delete=models.DO_NOTHING)
add_time = models.DateTimeField(default=datetime.datetime.now)
ModelSerializer:
class WindowInfoSerializer(serializers.ModelSerializer):
class Meta:
model = WindowInfo
fields = '__all__'enter code here
视图:
class WindowInfoViewset(viewsets.GenericViewSet, mixins.CreateModelMixin):
serializer = WindowInfoSerializer
queryset =WindowInfo.objects.all()
authentication_classes = [CustomerAuthentication]
def create(self, request: Request, *args, **kwargs):
window_info_list = WindowInfo.objects.all()
window_info = window_info_list[0]
window_info_list = WindowInfoSerializer(data=window_info_list, many=True)
window_info_list.is_valid()
window_info = WindowInfoSerializer(data=window_info, many=False)
window_info.is_valid()
print("window_info_list.data:")
print(window_info_list.data)
print("window_info.data:")
print(window_info.data)
然后使用控制台:
window_info_list.data:
[OrderedDict([('id', 1), ('add_time', '2020-03-24T03:43:13.091961'), ('user', 1)])]
window_info.data:
{}
为什么window_info.data是{}?
答案 0 :(得分:0)
序列化对象时,必须将对象作为第一个参数传递
window_info = WindowInfoSerializer(data=window_info)