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

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

  • 相关阅读:
    indexedDB 增删改查
    css-包含块
    css解析规则
    css样式---隐藏元素
    javascript实现数据结构----栈
    Android Studio 显示 logcat
    Android Spinner 绑定键值对
    Java json转model
    this view is not constrainted......
    Android 访问 Webapi 更新UI
  • 原文地址:https://www.cnblogs.com/atuotuo/p/15107206.html
Copyright © 2011-2022 走看看