update tutorial serializermethodfield queryset password modelserializer method framework python django rest serialization django-rest-framework

python - tutorial - partial update django rest framework



Serializar ManyToMany en Django Rest Framework(2.3.5) arroja ValueError (1)

Tengo lo que asumí que es una configuración de serializador bastante simple, pero cuando intento PONER datos en mi API, aparece el siguiente error:

ValueError: instancia debe ser un conjunto de consulta u otro iterable con many = True

Aquí está la vista:

class QuizAPI(generics.RetrieveUpdateDestroyAPIView): model = Quiz serializer_class = QuizSerializer lookup_field = ''activity_id''

y los serializadores:

class MediaResourceSerializer(serializers.ModelSerializer): owner = serializers.PrimaryKeyRelatedField(many=False, read_only=True) class Meta: model = MediaResource fields = (''owner'', ''name'', ''type'', ''url'') class AnswerSerializer(serializers.ModelSerializer): class Meta: model = Answer fields = (''text'',''is_correct'',''order'') class QuestionSerializer(serializers.ModelSerializer): answers = AnswerSerializer(many=True, required=False) resources = MediaResourceSerializer(many=True, required=False) class Meta: model = Question fields = ( ''question_id'', ''type'', ''order'', ''question_text'', ''explanation'', ''resources'', ''grading_weight'', ''answers'' ) class QuizSerializer(serializers.ModelSerializer): questions = QuestionSerializer(many=True, required=False) created_by = serializers.PrimaryKeyRelatedField(many=False, read_only=True) class Meta: model = Quiz fields = ( ''activity_id'', ''name'', ''is_hidden'', ''created_by'', ''created_date'', ''last_updated'', ''sharable'', ''questions'' )

Si hago un comentario sobre el campo ''questions'' de QuizSerializer, se ejecuta correctamente (por supuesto, sin datos de preguntas).

** Editar: Aquí está la carga útil de la llamada PUT:

activity_id: 4 created_by: 1 created_date: "2013-07-29T20:39:47.981Z" is_hidden: false last_updated: null name: "This is only a test" questions: [] sharable: true


El problema parece ser que las representaciones anidadas no admiten lectura-escritura , y la serialización de estructuras planas para operaciones de escritura es el camino a seguir.