没有项目描述

drf-keyed-list的Python项目详细描述


django rest框架的键列表

此包支持存储在dict中的对象列表的序列化和反序列化,其中 对象的值(通常是pk)用作dict中的键。例如,

{
    "1": {<other fields for object with id 1>},
    "2": {<other fields for object with id 2>},
    ...
}

安装

pip install drf-keyed-list

用法

下面是一个用法示例:

class MySerializer(ModelSerializer):

    class Meta:
        list_serializer_class = KeyedListSerializer
        keyed_list_serializer_field = 'id'

通过替换list_serializer_class,仅当使用many=True标志时才会启用此行为:

instance = {
   "id": "pk_val",
   "field1": "val1",
   "field2": "val2",
   ...
}

serializer = MySerializer(data=instance)
# this should work
serializer.is_valid()
serializer.save()

keyed_list = {
   "pk_val": {
       "field1": "val1",
       "field2": "val2",
       ...
   }
}

# many=True will trigger the keyed-list behavior
serializer = MySerializer(data=keyed_list, many=True)
# this should also work
serializer.is_valid()
serializer.save()

注意:keyed_list_serializer_field必须引用唯一字段,否则在序列化过程中可能发生密钥冲突, 加上未定义的反序列化行为(如果与嵌套的可写序列化程序结合使用)(例如 drf-writable-nested)。此时,包没有 尽一切努力验证是否已选择唯一字段。

作者

2018年,克莱顿戴利三世

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带Maven的Eclipse Java存储库:缺少工件:compile   java如何以编程方式停止RMI服务器并通知所有客户端   java Roboguice抛出ClassNotFoundException:AnnotationDatabaseImpl   java为什么lucene 4.0删除IndexWriter类的两个构造函数?   nls如何避免java项目上不需要的日志消息?   测试无法在Selenium Webdriver(java)中定位iframe   使用XML的java servlet   java如何使用jxl用****屏蔽单元格   java使用SQLite从数据库中选择“没有这样的列”   导入扫描程序后出现java编译错误   插入查询的java空指针异常   使用创建PostgreSQL数据库。Java应用中的sql脚本   java使用jsoup将HTML解析为格式化的明文