У меня есть родительский идентификатор в объекте, который содержит дочерние данные. Я хочу добавить другое значение поля из родительского идентификатора в сериализатор для дочерней таблицы, чтобы вернуться к представлению
Я создал вложенный сериализатор, но литература фокусируется только на обновлении родительского и дочернего объекта. Я только хочу обновить дочерний объект, но я хочу, чтобы поле из родительского объекта было добавлено к данным сериализатора.
Обратная связь особенно запутана, потому что 1. она не работает для меня, и2. пример здесь использует его для родительского элемента, который уже использовался в качестве примера прямого отношения. https://www.django -rest-framework.org / api-guide / serializers /
class ChoiceSerializer(serializers.ModelSerializer):
class Meta:
model = Choice
fields = ['choice_text', 'votes', 'question']
class QuestionSerializer(serializers.ModelSerializer):
choice = ChoiceSerializer(many=True)
class Meta:
model = Question
fields = ['id', 'question_text', 'choice']
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)# Create your models here.
def __str__(self):
return self.choice_text
s = ChoiceSerializer(data={'choice_text':'tests','votes': 50, 'question':1})
s.is_valid()
s.save()
Я получил это от s.data: ReturnDict ([('choice_text', 'tests'), ('voice', 50), ('question', 1)])
Я бы предпочел следующее: ReturnDict ([('choice_text', 'tests'), ('voice', 50), ('question_test', 'hello')])