【问题标题】:How to return primary key as a response when ever we make a post request using django rest framework?当我们使用 django rest 框架发出发布请求时,如何返回主键作为响应?
【发布时间】:2023-03-13 22:25:01
【问题描述】:

我有 django 模型和它的视图定义为:

class ItemViewSet(viewsets.ModelViewSet):

queryset = Item.objects.all()
serializer_class = ItemSerializer  

我应该怎么做才能返回一个主键作为响应? 这是我的 Json 在发出发布请求后的样子:

{
        "id": 4,
        "UID": "465666700",
        "name": "rohit ",
        "gender": "MALE",
        "yob": "1996"
    }

我的回答应该是:4 即主键 `class ItemSerializer(serializers.ModelSerializer):

    class Meta:
    model = Item
    fields = ('id', 'name', 'mrp','imageid', 'company', 'edible','discount','seller_uid','seller_pk')`

帮助表示赞赏。

【问题讨论】:

  • 您能否提供一个带有预期响应的示例 JSON?
  • @arcegk 我已经添加了我想要的 json 和响应
  • @BhupendraSinghChauhan,您可以在问题中发布您当前的ItemSerializer 代码吗?

标签: python django api django-rest-framework


【解决方案1】:

为您的 Item 模型声明一个 ModelSerializer。将 fields 属性设置为 ['id'] 就可以了!

class ItemSerializer(serializers.ModelSerializer):
    model = Item
    fields = ['id']

【讨论】:

    【解决方案2】:

    只需在您的ItemSerializer 中添加id,例如:

    from rest_framework import serializers
    
    class ItemSerializer(serializers.Serializer):
        id = serializers.IntegerField(source='pk')
    

    【讨论】:

      猜你喜欢
      • 2015-06-18
      • 1970-01-01
      • 2014-02-04
      • 1970-01-01
      • 2021-12-09
      • 2018-07-31
      • 2018-10-30
      • 2021-12-15
      相关资源
      最近更新 更多