如何在django中仅检索模型a中的字段值作为模型B中的字段值
我有两种型号,分别是Category和Product。我只想检索类别模型中的id字段值作为我的产品模型中的forign键字段值。在我检索产品时,整个模型将列在我的产品模型的外键字段中。例如,我不想检索Category表中的所有字段,而只想检索Category模型中的id值到product外键字段中 抱歉,如果我没有道理,但希望代码可以澄清我在做什么 类别模型 产品型号 因此,当我检索产品时,我得到的是:如何在django中仅检索模型a中的字段值作为模型B中的字段值,django,Django,我有两种型号,分别是Category和Product。我只想检索类别模型中的id字段值作为我的产品模型中的forign键字段值。在我检索产品时,整个模型将列在我的产品模型的外键字段中。例如,我不想检索Category表中的所有字段,而只想检索Category模型中的id值到product外键字段中 抱歉,如果我没有道理,但希望代码可以澄清我在做什么 类别模型 产品型号 因此,当我检索产品时,我得到的是: "product_code": 1, "name":
"product_code": 1,
"name": "Test Product",
"price": "1.00",
"product_image": "http://127.0.0.1:8000/media/images/Test%20Product/91WgL3IbNIL._AC_SL1500_.jpg",
"category": {
"id": 1,
"name": "Test Category",
"category_description": "testing",
"category_image": "http://127.0.0.1:8000/media/images/Test%20Category/Image.png"
}
这就是我想要得到的:
"product_code": 1,
"name": "Test Product",
"price": "1.00",
"product_image": "http://127.0.0.1:8000/media/images/Test%20Product/91WgL3IbNIL._AC_SL1500_.jpg",
"category": 1
我尝试了“tou_field”并将其设置为id,但这不起作用,因为它仍在从类别模型检索所有字段。任何帮助都将不胜感激
序列化程序
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ['id', 'name', 'category_description', 'category_image']
class ProductSerializer(serializers.ModelSerializer):
category = CategorySerializer(many=False)
class Meta:
model = Product
fields = ['product_code', 'name', 'price', 'product_image', 'category']
如果只需要id,则不需要指定自定义序列化程序,默认情况下,它只显示相关id
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ['product_code', 'name', 'price', 'product_image', 'category']
如果您想要一个字段较少的序列化程序,则需要创建一个信息较少的新的
类别
序列化程序,并在响应中使用该序列化程序。或者删除您不需要的额外字段。请共享您的序列化我已将序列化程序添加到问题中供您查看@MahmoudAdeldoes@gdef_的答案解决您的问题?@MahmoudAdel是的,谢谢!很高兴听到这个消息,你会来的非常感谢,我从产品序列化程序中删除了类别序列化程序,这就成功了,谢谢你的帮助!!
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ['id', 'name', 'category_description', 'category_image']
class ProductSerializer(serializers.ModelSerializer):
category = CategorySerializer(many=False)
class Meta:
model = Product
fields = ['product_code', 'name', 'price', 'product_image', 'category']
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ['product_code', 'name', 'price', 'product_image', 'category']