djangorestframework ModelSerializer сериализует модель Object, но данные пусты {} - PullRequest
0 голосов
/ 23 марта 2020

Я использую 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

view:

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 { }?

1 Ответ

0 голосов
/ 23 марта 2020

Должен передавать объект в качестве первого аргумента. При сериализации объектов

window_info = WindowInfoSerializer(data=window_info)
...