Django 管理表格内联查找选择下拉框用于非常大的查询集

2024-01-11

我有一个 django admin 表格内联,其中我有form = ProdForm其中持有一个modelchoicefield选择框如下;

class ProdForm(forms.ModelForm):
    productid = forms.ModelChoiceField(queryset=Product.objects.filter(active=True),
                                       widget=Select2(select2attrs={"width": "400px"}), )

如您所见,我正在使用 easy_select2 模块,它也可以为我提供查找字段。

但是,如果我尝试将其加载到相应的 tabularInLine 中,它永远不会加载,因为记录数量非常多(假设有数百万)。因此加载整个查询集是不可能的。我需要找到一种方法来做到这一点,以便使用管理员的人可以搜索他们需要的对象,假设通过名称,这是属性之一Product model.

一个想法是保留搜索框,但最初不加载查询集,并在搜索字段中有 3 个或更多字母时访问数据库,这可能会起作用。然而,这将包括一些我不太熟悉的 js,我更喜欢一些 pythonic/django 方式来做到这一点。

或者也许有一个很好的 django 方法,但我还没有找到它,我已经束手无策了。 我将不胜感激任何建议。


尝试使用ajax。

您可以致电ajax当您提交搜索栏时,接下来搜索您的记录view.py,最后在控制台或模板中显示结果。

这是一个一般示例:

file.js

$("#search").submit(function(e){
    e.preventDefault();
    $.ajax({
        type: 'GET',
        url: path_to_view,
        data: {'data':data_from_search_bar},
        success: function(response){
            var result = response['result']
            console.log(result)
        }
        error: 'some_func..'
    })
});

view.py

def get_result(request):
     if request.is_ajax and request.method =="GET":
         response_data = request.GET['data']
         product = ProductModel.objects.get(name=response_data)# or others attrs
         return JsonResponse({'result':product},status=200)

在这里阅读有关 ajax 的更多信息:

CFE https://simpleisbetterthancomplex.com/tutorial/2016/08/29/how-to-work-with-ajax-request-with-django.html

多元视野 https://www.pluralsight.com/guides/work-with-ajax-django

极客之极客 https://www.geeksforgeeks.org/handling-ajax-request-in-django/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 管理表格内联查找选择下拉框用于非常大的查询集 的相关文章

随机推荐

  • 播种和重用 Python 随机种子

    我正在使用 Python 和 Flask 来显示随机游戏板 并尝试让人们通过使用种子返回到同一个游戏 但是 无论我使用随机种子还是指定种子 我似乎都会得到相同的伪随机序列 我删除了大部分代码 我用 numpy 进行了大量的拆分和连接 但即使
  • 为什么这样的文件或目录不存在?

    我正在用 C 语言做一些矩阵乘法 我正在尝试编译我的程序 但它无法编译 原因是 没有这样的文件或目录 cblas h 这是我用来编译的命令 gcc o BLAS BLAS c 有人可以帮我吗 我正在服务器上编译这个程序 我不确定这是否有影响
  • 如何使用thymeleaf在spring中添加静态资源

    我是新来的Spring我正在尝试制作一个漂亮的 Web 应用程序 到目前为止 我设置了所有内容 如果我在浏览器上运行我的页面 它会按预期显示 但是如果我在端口上使用 tomcat 运行它8080 我正在使用 Intellij 它无法加载cs
  • 现有的 Kafka 主题镜像方法的主要区别是什么

    Kafka MirrorMaker是一种将 Kafka 主题从源代理镜像到目标代理的基本方法 不幸的是 它不符合我的可配置要求 我的要求很简单 解决方案应该是JVM应用程序 如果目标主题不存在 则创建它 解决方案应该能够向目标主题名称添加前
  • InvalidKeyException 非法密钥大小

    我有一个测试 在我的开发 MacBook Pro 上运行良好 但在持续集成 TeamCity 服务器中运行失败 错误如下 java security InvalidKeyException Illegal key size at javax
  • 减小构建尺寸

    当我在 VS2013 中使用 C 运行时库的静态链接时 有什么方法可以降低构建大小吗 我的原始文件只有 15kb 但我无法在其他计算机上运行它而不弹出缺少 dll 的消息 我决定使用静态链接 现在大小约为 100kb 我正在使用Window
  • 在 C++11 中解析 int - stoi

    我正在尝试获取一个字符串并将其解析为一个 int 我已经阅读了很多答案 似乎使用stoi是最新的方式 在我看来stoi uses std 但我得到了Function stoi could not be resolved德斯皮特雷using
  • 如何将二进制密钥传递给 openssl

    我很难尝试将关键参数传递给openssl dgst 我正在尝试连接 GDAX 交易平台 每个请求都必须由 HMAC 签名 他们明确表示 首先对字母数字秘密字符串进行 base64 解码 结果为 64 字节 然后将其用作 HMAC 的密钥 这
  • 循环遍历数据框以按城市删除异常值(调用函数)

    我有一个包含日期 城市 销售额的数据框 Date City Sales 2008 01 01 C1 10000 2008 01 01 C2 2000 2008 01 02 C1 13000 2008 01 02 C2 5000 and so
  • 打印到达第 n 级楼梯的方法

    我最近在面试中遇到了这个问题 有n楼梯 一个人站在底部想要到达顶部 该人一次可以爬 1 级楼梯或 2 级楼梯 打印出人们到达顶峰的所有可能方式 例如 n 4输出 1 2 3 4 1 2 4 1 3 4 2 3 4 2 4 但我无法正确编码
  • MPAndroidChart BarChart水平/垂直

    我正在使用MPAndroid图表 https github com PhilJay MPAndroidChart图书馆 在 BarChart 中 默认情况下所有条形都是垂直的 自下而上 如何将其水平显示 有两种类型条形图的方向 The no
  • Python3 递归求和整数的数字

    我需要帮助实现一个函数 该函数将获取整数的数字并将它们加在一起 只要 sumDigits 函数实现了递归 它就有效 并且 main 函数必须保持原样 我将在下面包含一个模板 def sumdigits value recursively s
  • 在 Windows 2008 Server 中从 MP3/WAV 文件生成视觉(波形)?

    是否有 某处 适用于 Windows 的命令行程序可以从 MP3 WAV 创建 PNG JPEG 视觉效果 EDIT This is a good example of how the image should look like Sox
  • Stream.CopyTo() 方法可以保存不完整的流吗?

    我有一个 WCF 服务 它允许我分块上传文件 我想知道的是 在任何情况下 这段代码是否会导致上传的流仅部分附加到目标流 我的日志显示所有发送的流都是 512000 字节 我在客户端设置 并且到目前为止我已经发送了 9 个块中的 6 个块 但
  • Facebook 需要 CURL PHP 扩展

    我正在尝试在我的 apache 服务器上运行我的第一个 facebook php 应用程序 它给出了错误Facebook needs the CURL PHP extension 我已经添加了行extension php curl dll在
  • 哪个版本的 Grails 支持 JDK 8?

    我正在为 Grails 使用以下配置 Grails 版本 2 4 0 Maven版本3 2 5 JDK版本1 8 0 51 当我运行服务器时 我收到两个错误 在我的 POM 中 我使用grail gorm and grail crud依赖关
  • 使用 ruby​​/fastercsv 将 CSV 文件合并到公共字段上

    我有一个包含许多列的 主 文件 1 2 3 4 5 我还有一些其他文件 其行数比主文件少 每个文件的列数 1 6 我想合并这些匹配的文件在第 1 列字段上并将第 6 列添加到主字段 我见过一些 python UNIX 解决方案 但如果合适的
  • 加载数据问题

    数据链接 Data https www dropbox com s yt4l10nel5bwxoq GTAP ConsIndex csv Code ccfsisims lt read csv file F Purdue University
  • VS2010:自动生成的文件和 XML 文档

    这真的只是重新询问这个问题询问有关 Visual Studio 2008 https stackoverflow com questions 1445723 vs2008 autogenerated files and xml docume
  • Django 管理表格内联查找选择下拉框用于非常大的查询集

    我有一个 django admin 表格内联 其中我有form ProdForm其中持有一个modelchoicefield选择框如下 class ProdForm forms ModelForm productid forms Model