Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest framework 如何在Django rest框架中获取外键的名称_Django Rest Framework - Fatal编程技术网

Django rest framework 如何在Django rest框架中获取外键的名称

Django rest framework 如何在Django rest框架中获取外键的名称,django-rest-framework,Django Rest Framework,使用Django Rest框架从pet模型中获取数据时,获取category的外键值,而不是id。我不确定在哪里放置Slug相关字段 class PetSerializer(serializers.ModelSerializer): selected_category = serializers.SlugRelatedField(slug_field='selected_category',queryset=categoryType.objects.all())

使用Django Rest框架从pet模型中获取数据时,获取category的外键值,而不是id。我不确定在哪里放置Slug相关字段

class PetSerializer(serializers.ModelSerializer):
    selected_category = serializers.SlugRelatedField(slug_field='selected_category',queryset=categoryType.objects.all())                                              
    class Meta:
        model = pet
        fields = '__all__'
模型

序列化程序

class PetSerializer(serializers.ModelSerializer):
    class Meta:
        model = pet
        fields = '__all__'


class CategorySerializer(serializers.ModelSerializer):

    class Meta:
        model = categoryType
        fields = '__all__'
如果我执行get请求,会得到什么

   {
        "id": 1,
        "title": "dog",
        "category": 2
    },
我想要什么

   {
        "id": 1,
        "title": "dog",
        "category": "Pet"
    },

我相信有两种方法可以做到这一点

第一种可能的解决办法 您需要覆盖
categoryType
\uuuu str\uuuuu()
方法,并响应您的Desired model\u str()响应,在本例中为
categoryName
名称

类类别类型(models.Model):
categoryName=models.CharField(最大长度=50)
定义(自我):
return self.categoryName
相关的

第二种可能的解决办法 另一种可能的解决方案是使用并返回您对
category
字段的期望响应


类序列化程序(serializers.ModelSerializer):
category=serializers.SerializerMethodField()
类元:
型号=宠物
字段=(“id”、“标题”、“类别”)
def get_类别(自身、obj):
返回obj.category.categoryName
   {
        "id": 1,
        "title": "dog",
        "category": "Pet"
    },