Прежде всего, речь идет не о создании или обновлении объектов вложенности, а только об их установке. позволяет использовать следующий пример: У меня есть следующие модели:Как установить вложенный объект в рамки django rest?
class Category(models.Model):
code= models.CharField(max_length=2)
name= models.CharField(max_length=100)
class Question(models.Model):
category= models.ForeignKey(Category, related_name='categories')
title = models.CharField(max_length=100)
и следующие сериализаторы:
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ('code', 'name')
class QuestionSerializer(serializers.ModelSerializer):
category= CategorySerializer()
class Meta:
model = Question
fields = ('category', 'title')
Теперь, когда я get
Question
, его прекрасно работают, как ожидалось: Я получаю поле вопроса с полями категорий, как ожидалось.
Проблема, что у меня есть, когда я хочу post
Question
только имея Category.code
, я не совсем уверен, как установить/использовать существующий Category
. Я пытался по-разному, но никто из них не работал.
Если удалить category= CategorySerializer()
на QuestionSerializer
и я прохожу id
(pk
) в Category
в моей просьбе, чем он работает, Question
сохраняется с соответствующей Category
.
Есть ли способ указать, как сериализовать вложенный объект?
Заранее благодарю за любые комментарии/рекомендации/решения.
Возможные дубликатом [Django REST Framework: создание и обновление объекта с вложенное значение объекта (вместо основного ключа)] (http://stackoverflow.com/questions/35181118/django-rest-framework-create-and-update-an-object-with-a-nested-object-value-i) – bakkal