django和django rest框架的Json数据过滤器

kfjsonfilter的Python项目详细描述


KF pubsub公司

使用django和django rest框架实现JsonFieldFilter和JsonFieldSearchFilter

安装

与要求.txt

requirements.txt文件中添加以下行:

kfjsonfilter

有PIP

^{pr2}$

入门

实现了两个基本过滤器:JsonFieldFilter和JsonFieldSearchFilter。在

JsonFieldFilter

允许从json对象创建数据过滤器。有必要在django rest框架视图集中声明两个元素:json_字段和json_过滤器

TYPEDESCRIPTION
json_fieldstringIndicates the json field object form the model
json_filterslist of dictsIndicates the field thats allow filter and lookup type for each type

json_过滤器结构

允许按json数据中的任何值进行筛选。每个元素都必须包含在字典中,关键字为:field和lookup。在

json_filters = [{'field': <field_name>, 'lookup': <lookup>}, ...]
^{tb2}$

JsonFieldSearchFilter

允许从json对象创建数据筛选器和搜索筛选器。有必要在django rest框架视图集中声明三个元素:json_字段和search_字段

TYPEDESCRIPTION
json_fieldstringIndicates the json field object form the model
json_filterslist of dictsIndicates the field thats allow filter by a field and lookup type for each type
search_fieldslist of dictsIndicates the field thats allow search by a field and lookup type for each type

json过滤器和搜索字段结构

允许按json数据中的任何值进行筛选/搜索。每个元素都必须包含在字典中,关键字为:field和lookup。在

json_filters = [{'field': <field_name>, 'lookup': <lookup>}, ...]
^{tb2}$

另外,当查找为“日期范围”时,字段名称必须以[]结尾

示例

Django模型

class MyModel(models.Model):
	data = JSONField(default=dict)
For example:
data = {'creation_date': '2020-01-01', 'total': 3, 'name': 'Pedro Miguel'}
Django Rest框架视图
class MyModelViewSet(ListAPIView):
	queryset = MyModel.objects.all()
	filter_backends = [JsonFieldFilter, DjangoFilterBackend, OrderingFilter]
	json_field = 'data'
	json_filters = [{'field': 'creation_date', 'lookup': 'date_range'}, {'field': 'total', 'lookup': 'gte'}]

or

class MyModelViewSet(ListAPIView):
	queryset = MyModel.objects.all()
	filter_backends = [JsonFieldSearchFilter, DjangoFilterBackend, OrderingFilter]
	json_field = 'data'
	json_filters = [{'field': 'creation_date', 'lookup': 'lte'}, {'field': 'total', 'lookup': 'gte'}]	
	search_fields = [{'field': 'name', 'lookup': 'icontains'}]

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

推荐PyPI第三方库


热门话题
java素数校正(2个数组)   java是否可以将ArrayList除以一个double并创建一个新列表?   列出Java类Java的消息体编写器。util。ArrayList   Java将管道分隔文本\csv文件转换为XML   JAVA木卫一。IOException:读取Transferncode时EOF过早:分块http响应   java Volatile变量的读写   java错误:类型不匹配:无法从ArrayList<Subchild>转换为ArrayList<String>   java:无法向AsyncLoadingCache提供CacheWriter   java多级listview Android Studio   静态Java哈希映射性能   循环如何在JAVA中创建三角形   java在春季为ContextFactoryBean定义多个contextPath路由   java从服务器的URL下载数据,并将其保存在一个私有的安全文件夹中   JavaSpringJPA查询   objective c Java REST服务二进制下载   使用JavaSpringRESTAPI并将记录插入mysql表   java你会选择一个算法的速度而不是它对内存的有效使用吗?   java通过多个字段比较对象,如何添加一个方法?   java在spring框架上使用@ModelAttribute(“myobject”)访问服务器上的JSON