Django Djagno Rest框架序列化仅在第一列中读取

Django Djagno Rest框架序列化仅在第一列中读取,django,django-rest-framework,django-serializer,Django,Django Rest Framework,Django Serializer,我正在尝试将列表中的数据读入序列化程序。当在下面执行该方法时,它只将仪表板的名称附加到my widgets_value表中。关于widget\u endpoint\u post方法,它首先接收一个请求对象,如下所示 请求对象 {'dashboard_name': 'check_out', 'widgets': [{'position': {'top': 1, 'left': 1, 'width': 1, 'height': 1}, 'name': 0, 'content': {}, 'publi

我正在尝试将列表中的数据读入序列化程序。当在下面执行该方法时,它只将仪表板的名称附加到my widgets_value表中。关于
widget\u endpoint\u post
方法,它首先接收一个请求对象,如下所示

请求对象

{'dashboard_name': 'check_out', 'widgets': [{'position': {'top': 1, 'left': 1, 'width': 1, 'height': 1}, 'name': 0, 'content': {}, 'public_private': '', 'owner': '', 'title': ''}], 'type': 'public', 'user': 'Person_1'}
下面的方法使用两个序列化程序,一个用于创建引用仪表板的表,另一个用于保存每个仪表板的布局

views.py

@api_view(['POST'])
def widget_endpoint_post(request):
    body_unicode = request.body.decode('utf-8')
    body = json.loads(body_unicode)
    serializer=AddDashboardSerializer(data=request.data)
    data={}

    if serializer.is_valid():
        account=serializer.save()
        body['dashboard_name']=account.dashboard_name
        body['user']=account.user
        body['type']=account.type
        print('test')
    else:
        data = serializer.errors


    print(body['widgets'])
    # print(body['widgets'])
    for x in range(len(body['widgets'])):
        print(body['widgets'][x]['position']['top'])

        serializer2=AddWidgitSerializer(data=request.data)
        data={}
        if serializer2.is_valid():
            account=serializer2.save()
            body['dashboard_name'] = account.dashboard_name
            body['type'] = account.widget_type
            body['user'] = account.owner
            body['widgets'][x]['name'] = account.widget_name
            body['widgets'][x]['position']['top'] = account.top
            body['widgets'][x]['position']['left'] = account.left
            body['widgets'][x]['position']['width']=account.width
            body['widgets'][x]['position']['height']=account.height

        else:
            data=serializer.errors

    return Response('Dashboard saved')


序列化程序.py


class AddDashboardSerializer(serializers.ModelSerializer):
    dashboard_name=serializers.CharField(),
    user=serializers.CharField(),
    type=serializers.CharField(),
    class Meta:
        model= DashboardView
        fields=['dashboard_name','user','type']


class AddWidgitSerializer(serializers.ModelSerializer):
    dashboard_name=serializers.CharField(),
    widget_name=serializers.CharField(),
    top=serializers.CharField(),
    left=serializers.CharField(),
    height=serializers.CharField(),
    width=serializers.CharField(),
    widget_type=serializers.CharField(),
    owner=serializers.CharField(),
    class Meta:
        model=WidgetView
        fields=['dashboard_name','widget_name','top','left','height','width','widget_type','owner']

下面是WidgetView表,它只验证仪表板的名称,我不知道为什么

试试这个

class AddDashboardSerializer(serializers.ModelSerializer):
    dashboard_name = serializers.CharField()
    user = serializers.CharField()
    type = serializers.CharField()

    class Meta:
        model = DashboardView
        fields = '__all__'
试试这个

class AddDashboardSerializer(serializers.ModelSerializer):
    dashboard_name = serializers.CharField()
    user = serializers.CharField()
    type = serializers.CharField()

    class Meta:
        model = DashboardView
        fields = '__all__'