首页 > 其他分享 >django admin 中对自定义字段进行搜索

django admin 中对自定义字段进行搜索

时间:2023-04-25 22:00:56浏览次数:43  
标签:search 自定义 admin list term django user investment

我想在 django admin 中使用investment字段进行搜索,但总是得到Cannot resolve keyword 'investment' into field.选项是 Model 字段。

有什么方法可以使用investment字段进行搜索?

from django.db.models import Count

class ReportsAdmin(admin.ModelAdmin):
    def investment(self, inst):
        return models.OrderDetail.objects.filter(user=inst.user).distinct().count()

    list_display = ['investment']
    search_fields = ['investment']

    def get_search_results(self, request, queryset, search_term):
        # search_term is what you input in admin site
        search_term_list = search_term.split(' ')  #['apple','bar']

        if not any(search_term_list):
            return queryset, False

        if 'investment' in search_term_list:
           queryset = OrderDetail.objects.annotate(
               user_count=Count('user')
           ).filter(user_count__gte=search_term_list['investment'])

        return queryset, False
    list_display = ['investment']
    search_fields = ['investment']

 

标签:search,自定义,admin,list,term,django,user,investment
From: https://www.cnblogs.com/superip/p/17354051.html

相关文章

  • Django之视图函数层 (必会三板斧 JsonResponse对象 request对象获取文件 FBV与CBV
    目录视图层之必会三板斧用来处理请求的视图函数都必须返回HttpResponse对象情况一:啥也不返回这里会报一个没有返回HttpResponse对象的错误,由此可见必须要返回一个HttpResponse对象情况二:返回HttpResponse对象点击Ctrl键查看源码可见是HttpResponse类,所以会返回一个值情......
  • Django之路由层 (有名和无名分组 反向解析 路由分发 名称空间)
    目录一、路由匹配django2.X及以上path第一个参数写什么就匹配什么django1.X第一个参数是正则表达式PS:无论什么版本django都自带加斜杠后缀的功能也可以取消,这里如果在浏览器地址栏没有写完整的/index/,而是/index,这里还是可以找到的,因为Django会帮你二次查找,浏览器会有303......
  • Django框架——路由分发、名称空间、虚拟环境、视图层三板斧、JsonResponse对象、requ
    路由分发#Django支持每个应用都可以有自己独立的路由层、静态文件、模版层。基于该特性多人开发项目就可以完全解耦合,之后利用路由分发还可以整合到一起多个应用都有很多路由与视图函数的对应关系这个时候可以拆分到各自的路由层中使用路由分发之前总路由直接是路由与视图......
  • django打包成whl包并分发
    django打包成whl包并分发python中下载setuptools工具,打包成whl包结构公司内部写的包,只给公司内部使用,可以开源出来公司写好的项目,打包好,发送给客户,客户可以直接运行起来,不需要下载依赖注意:之前下载的第三包都是:requests-2.28.2-py3-none-any.whlwhl结尾的打包好的包,可以......
  • vue-element-admin报错Error: error:0308010C:digital envelope routines::unsupporte
    安装vue-element-admin报错 nodejs  Node.jsv18.15.0  opensslErrorStack:['error:03000086:digitalenveloperoutines::initializationerror'],library:'digitalenveloperoutines',reason:'unsupported',code:'ERR_OSSL......
  • 仿Django框架-基于wsgiref模块和jinja2模块写一个简单的框架 主流框架简介 动静态网
    目录仿Django框架-基于wsgiref模块和jinja2模块写一个简单的框架一、前期需要的了解背景知识web框架的本质理解1:连接前端与数据库的中间介质理解2:socket服务端手写web框架的大概思路1.编写socket服务端代码2.浏览器访问响应无效>>>:HTTP协议3.根据网址后缀的不同获......
  • Django(五)
    Django(五)request对象#GETPOSTFILESmethodpathpath_infoget_full_path()bodydefindex(request):print(request.path)#/index/print(request.path_info)#/index/print(request.get_full_path_info())#接收路径的全部内容连参数也能拿到pr......
  • Django 如何使用 Celery 完成异步任务或定时任务
    以前版本的Celery需要一个单独的库(django-celery)才能与Django一起工作,但从Celery3.1开始,情况便不再如此,我们可以直接通过Celery库来完成在Django中的任务。安装Redis服务端以Docker安装为例,安装一个密码为mypassword的Redis服务端dockerrun-itd--name......
  • pytorch自定义或自组织数据集
     importosfrompathlibimportPathfromtypingimportAny,Callable,Optional,TupleimportnumpyasnpimporttorchimporttorchvisionfromPILimportImageclassDatasetSelfDefine(torchvision.datasets.vision.VisionDataset):def__init__(......
  • Servlet添加自定义的过滤器没有效果?
    在学习HttpServlet的时候有个自定义过滤器的定义类,我们想让特定url走过滤器。publicclassMyFilterimplementsFilter{privateFilterConfigconfig;publicvoidinit(FilterConfigconfig)throwsServletException{this.config=config;}publi......