zoukankan      html  css  js  c++  java
  • Django REST Framwork 使用 HyperlinkedModelSerializer 报错: `HyperlinkedIdentityField` requires the request in the serializer context

    背景

    在项目中使用 Django 的 ORM 功能时,免不了涉及到序列化与反序列化的操作(例如:python对象转为可用于网络传输的字节序列;HTTP请求中的字节序列数据转为python对象)。在 Django REST Framwork (以下简称DRF)的设计中,Serializers类以及其子类的使命之一就是帮助我们完成这种转换。

    问题描述

    使用postman调用DRF的REST接口,读取数据时报错如下:

    `HyperlinkedIdentityField` requires the request in the serializer context. Add `context={'request': request}` when instantiating the serializer."

    问题解决

    经过反复测试后发现,在具体的 Serializers 中, fields 需要指定具体的模型属性:

    错误的代码:

    class SimulationConfigSerializer(serializers.HyperlinkedModelSerializer):    
        。。。
        class Meta:
            model = SimulationConfig       
            fields =  "__all__"

    正确的代码:

    class SimulationConfigSerializer(serializers.HyperlinkedModelSerializer):    
        。。。
        class Meta:
            model = SimulationConfig
            fields = ['id','simulation_name','create_time']

    解决问题的同时总结与记录下来,方便自己与他人~ 感谢观看:)

  • 相关阅读:
    【HTML】input标签中alt属性和title属性的比较
    【HTML】WWW简介
    【MySQL】MySQL的常规操作
    iOS编程(双语版)
    Swift语言精要
    Swift语言精要
    python网络爬虫
    Python小任务
    如何在onCreate方法中获取视图的宽度和高度
    python网络爬虫
  • 原文地址:https://www.cnblogs.com/atuotuo/p/15107206.html
Copyright © 2011-2022 走看看