Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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中仅检索模型a中的字段值作为模型B中的字段值_Django - Fatal编程技术网

如何在django中仅检索模型a中的字段值作为模型B中的字段值

如何在django中仅检索模型a中的字段值作为模型B中的字段值,django,Django,我有两种型号,分别是Category和Product。我只想检索类别模型中的id字段值作为我的产品模型中的forign键字段值。在我检索产品时,整个模型将列在我的产品模型的外键字段中。例如,我不想检索Category表中的所有字段,而只想检索Category模型中的id值到product外键字段中 抱歉,如果我没有道理,但希望代码可以澄清我在做什么 类别模型 产品型号 因此,当我检索产品时,我得到的是: "product_code": 1, "name":

我有两种型号,分别是Category和Product。我只想检索类别模型中的id字段值作为我的产品模型中的forign键字段值。在我检索产品时,整个模型将列在我的产品模型的外键字段中。例如,我不想检索Category表中的所有字段,而只想检索Category模型中的id值到product外键字段中

抱歉,如果我没有道理,但希望代码可以澄清我在做什么

类别模型

产品型号

因此,当我检索产品时,我得到的是:

"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']