当我调用 API (curl) 时,我得到以下信息:
{"id": 1, "name": "Sword", "persona": [1]}
我得到了角色的“id”,但没有得到其中的属性。我该怎么做?
模型.py:
class Persona(models.Model):
name = models.CharField(max_length=255)
description = models.CharField(max_length=255)
icon = models.CharField(max_length=255,default='1')
def __str__(self):
return self.name
class Equipment(models.Model):
personas = models.ManyToManyField(Persona)
name = models.CharField(max_length=255)
def __str__(self):
return self.name
序列化器.py:
class EquipmentSerializer(serializers.ModelSerializer):
personas = serializers.PrimaryKeyRelatedField(queryset=Persona.objects.all(), many=True)
name = serializers.CharField(max_length=255)
class Meta:
model = Equipment
fields = ('id', 'name', 'persona')
最佳答案
您需要两个步骤:
创建一个
Persona 序列化器类
:class PersonaSerializer(serializers.ModelSerializer): class Meta: model = Persona
然后您可以将此序列化器“链接”到
设备
序列化器:class EquipmentSerializer(serializers.ModelSerializer): personas = PersonaSerializer(source='personas', many=True) name = serializers.CharField(max_length=255) class Meta: model = Equipment fields = ('id', 'name', 'personas')
要更深入地了解上述内容,请查看以下示例答案:
How do I include related model fields using Django Rest Framework?
祝你好运:)
关于python - 如何使用 DRF3 获取 Django 中的整个 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43793198/