Prima di tutto, non si tratta di creare o aggiornare oggetti di nidificazione, ma solo di impostarli. Consente di utilizzare il seguente esempio: ho i seguenti modelli:Come impostare l'oggetto nidificato nel framework 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)
ei seguenti serializzatori:
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ('code', 'name')
class QuestionSerializer(serializers.ModelSerializer):
category= CategorySerializer()
class Meta:
model = Question
fields = ('category', 'title')
Ora, quando get
un Question
, la sua fine funziona come previsto: ricevo i campi di domanda con i campi categoria come previsto.
Il problema che ho è quando voglio post
un Question
solo avendo la Category.code
, io non sono davvero sicuro di come impostare/utilizzare un Category
esistente. Ho provato diversi modi, ma nessuno di loro ha funzionato.
Se rimuovo category= CategorySerializer()
sulla QuestionSerializer
e passo il id
(pk
) del Category
nella mia richiesta, che si sta lavorando, l'Question
viene salvato con il relativo Category
.
C'è un modo per indicare come serializzare l'oggetto nidificato?
Grazie in anticipo per qualsiasi commento/consiglio/soluzione.
Eventuali duplicati di [Django REST quadro: creare e aggiornare un oggetto con un valore oggetto annidato (anziché chiave primaria)] (http://stackoverflow.com/questions/35181118/django-rest-framework-create-and-update-an-object-with-a-ested-object-value-i) – bakkal