我在 Django 中获取嵌套对象时遇到问题。我的主要目的是从嵌套的 Django 对象生成 JSON 对象。
我有以下型号:
class SurveyAnswer(models.Model):
id = models.UUIDField(default=uuid.uuid4, unique=True,
primary_key=True, editable=False)
survey=models.ForeignKey("Survey",on_delete=models.CASCADE)
answer=models.ForeignKey("Answer",on_delete=models.CASCADE)
total_count=models.IntegerField(null=True,blank=True)
total_percentage=models.FloatField(null=True,blank=True)
class Meta:
db_table="SurveyAnswer"
class Answer(models.Model):
id = models.UUIDField(default=uuid.uuid4, unique=True,
primary_key=True, editable=False)
name= models.CharField(max_length=100)
def __str__(self) -> str:
return self.name
class Meta:
db_table="Answer"
我想获取具有相关答案模型的所有 UserAnswer 记录(仅答案模型中的名称字段)。为了能够做到这一点,我创建了如下序列化器,但这次我遇到了错误 就像“QuerySet 类型的对象不可 JSON 序列化”。
我该怎么办?有什么简单的方法可以做到吗?
class SurveyAnswerSerializer(serializers.ModelSerializer):
answers=serializers.StringRelatedField()
class Meta:
model=SurveyAnswer
fields=["id","total_count","total_percentage","answers",]
我认为在这种情况下,您需要为答案模型定义一个序列化器。 然后写例如:
answers = AnswerSerializer(many=True, read_only=True)
并写下:
answer=models.ForeignKey("Answer",on_delete=models.CASCADE, related_name='answers')