Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django is_valid()在嵌套序列化程序上返回false_Django_Django Rest Framework - Fatal编程技术网

Django is_valid()在嵌套序列化程序上返回false

Django is_valid()在嵌套序列化程序上返回false,django,django-rest-framework,Django,Django Rest Framework,代码 Serializers.py: class ActivitySerializer(serializers.ModelSerializer): class Meta: model = Activity class RouteOrderingSerializer(serializers.ModelSerializer): activity = ActivitySerializer() class Meta: model = RouteOr

代码

Serializers.py:

class ActivitySerializer(serializers.ModelSerializer):
    class Meta:
       model = Activity

class RouteOrderingSerializer(serializers.ModelSerializer):
    activity = ActivitySerializer()
    class Meta:
        model = RouteOrdering
        fields = ('id','activity','day','order','route','activity')

    def create(self, validated_data):
        routeordering = RouteOrdering.objects.create(**validated_data)
        return routeordering
创建函数:

def make(data):
    serializer = RouteOrderingSerializer(data=data)
    serializer.is_valid(raise_exception=True)
    serializer.save()
问题

出于某种原因,由于可写嵌套序列化程序,serializer.is_valid()函数会将传递的数据视为无效,并且不允许我保存实例。 我还尝试跳过is_valid()函数,但rest框架当然不允许这样做

数据是当前格式的,ORM应该接受它

任何帮助都将被告知:)

可能值得注意
当我传递要为Routeorderingserializer创建的数据时,我只想传递一个活动id,而不是整个活动对象。iv'e也尝试了一个完整的活动对象,但没有任何帮助。

对于我来说,我将添加一个新的
RouteOrderingWriteSerializer
,它不使用嵌套的序列化程序(注释
activity=ActivitySerializer()
行),并在视图中重写
get_serializer\u class
方法,如果
self.action='create'
,使用新添加的
RouteOrderingWriteSerializer
实际上没有考虑到这一点,非常感谢:)对于我,我将添加一个新的
RouteOrderingWriteSerializer
,它不使用嵌套序列化程序(注释
activity=ActivitySerializer()
行),并在视图中,重写
get\u serializer\u class
方法,如果
self.action==“create”
,请使用新添加的
RouteOrderingWriteSerializer
实际上没有考虑到这一点,非常感谢:)