Django应用程序和外国的关系。但是API调用显示的是id而不是名字。但我想显示姓名而不是身份证。
这是一个属性:
category = models.ForeignKey(Category, related_name='animals', on_delete=models.CASCADE, verbose_name="test")
字符串
串行器:
class SubAnimalSerializer(serializers.ModelSerializer):
class Meta:
model = Animal
fields = ['id', 'name', 'description',"category","pet_list", 'images' ]
read_only_fields = ['id']
型
这是API调用的一部分:
"animals": [
{
"id": 3,
"name": "Vicuña",
"description": "kjhkkhkhkjhjkhj Hello",
"category": 6,
"pet_list": "D",
"images": "http://192.168.1.135:8000/media/media/photos/animals/mammal.jpg"
},
{
"id": 5,
"name": "Goudhamster",
"description": "khkjh",
"category": 6,
"pet_list": "C",
"images": "http://192.168.1.135:8000/media/media/photos/animals/imgbin_dog-grooming-puppy-cat-pet-png_I7rLPen.png"
}
],
型
当然,我也在谷歌上搜索了一些东西。所以我发现了这个
How to show name instad of id in django ForeignKey?
但它并不完全符合我正在寻找的。
问:如何在API调用中显示name而不是id
2条答案
按热度按时间9vw9lbht1#
可以使用**
SlugRelatedField
**[drf-doc]:字符串
为了写入,
Category
中的name
字段应该是唯一的,并且优选地具有db_index=True
。5lhxktic2#
在序列化器中定义一个字段,并像这样使用它的
source
属性:字符串