python - 如何使用 DRF3 获取 Django 中的整个 JSON 对象?

标签 python json django

当我调用 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')

最佳答案

您需要两个步骤:

  1. 创建一个 Persona 序列化器类:

    class PersonaSerializer(serializers.ModelSerializer):
        class Meta:
            model = Persona
    
  2. 然后您可以将此序列化器“链接”到设备序列化器:

    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/

相关文章:

django 内联小部件模板脚本在添加另一个内联时未呈现

Python:尽管尝试了多种方法,ABP 位仍然没有翻转,如何修复?

python - 在Python中的函数中声明全局变量

python - 将数据框转换为元组列表

javascript - 如何唯一合并两个 JSON 文件?

javascript - 如何在html元素的json中插入日期

java - 将 Map<String,String> 转换为 json

django - 在 Django 中使用模型时获取当前 site_id

django - 如何将stripe payment与现有的django表单集成,并且仅在付款成功时保存表单

python - 如何连续读取细节 block 并计算文本行数