跳转到主要内容

应用程序通过最小配置即可使用jQuery UI自动完成小部件来启用ModelChoiceFields的使用。

项目描述

Django Simple Autocomplete

应用程序通过最小配置即可使用jQuery UI自动完成小部件来启用ModelChoiceFields的使用。

安装

  1. django-simple-autocomplete安装或添加到Python路径。

  2. simple_autocomplete添加到您的INSTALLED_APPS设置。

  3. 将(r’^simple-autocomplete/’, include(‘simple_autocomplete.urls’, namespace=’simple_autocomplete’))添加到urlpatterns。

  4. <script src="{{ STATIC_URL }}simple_autocomplete/jquery-ui.js"></script><link rel="stylesheet" href="{{ STATIC_URL }}simple_autocomplete/jquery-ui.css" />添加到您的模板。您可能需要覆盖例如templates/admin/base.html。如果您已经在您的网站上安装了jQuery UI,则可以跳过此步骤。

用法

Django默认为外键字段渲染一个选择小部件(即组合框或下拉列表)。您可以通过将模型添加到设置文件中的SIMPLE_AUTOCOMPLETE_MODELS字典来将小部件更改为自动完成小部件。例如,要使用自动完成小部件选择用户,执行以下操作

SIMPLE_AUTOCOMPLETE = {'auth.user': {'search_field': 'username'}}

字典格式允许在未来引入任意参数。参数 threshold 表示在渲染为自动完成小部件之前所需的选项最小数量。如果没有达到阈值,则渲染默认小部件。

SIMPLE_AUTOCOMPLETE = {'auth.user': {'threshold': 10}}

参数 max_items 表示在自动完成下拉列表中显示的最大匹配项数。默认为10。

SIMPLE_AUTOCOMPLETE = {'auth.user': {'max_items': 10}}

参数 duplicate_format_function 是一个lambda函数,它允许在自动完成下拉列表中有多个项目具有相同的字符串值时显示自定义字符串。默认为显示内容类型名称。请使用lambda函数设置,例如。

SIMPLE_AUTOCOMPLETE = {'auth.user': {'duplicate_format_function': lambda obj, model, content_type: 'id: %s' % obj.id}}

产品尝试使用字段 title 来过滤列表。如果没有模型字段 title,则使用第一个CharField。例如,对于用户模型,使用字段 username

小部件可以在表单中隐式使用。只需要声明 ModelChoiceField

class MyForm(forms.Form):
    user = forms.ModelChoiceField(queryset=User.objects.all(), initial=3)

小部件可以在表单中显式使用。在这种情况下,您必须提供一个URL,该URL返回格式为[(value, label), (value, label),…]的JSON格式的结果。如果存在起始值,则只需提供 initialinitial_display 参数。

from simple_autocomplete.widgets import AutoCompleteWidget

class MyForm(forms.Form):
    user = forms.ModelChoiceField(
        queryset=User.objects.all(),
        initial=3,
        widget=AutoCompleteWidget(
            url='/custom-json-query',
            initial_display='John Smith'
        )
    )

指定小部件URL的能力允许您在需要时将其连接到其他更高级的自动完成查询引擎。

作者

Praekelt Consulting

  • Hedley Roos

变更日志

1.11

  1. Django 1.11 兼容性。正确使用 django.jQuery。

1.9.1

  1. 确保也部署了静态文件。

1.9

  1. Django 1.9 兼容性。已删除对旧版本的支持。

0.5.2

  1. 如果提供搜索字段,则下拉列表现在显示这些属性,而不是对象的字符串表示。

0.5.1

  1. 仅在默认小部件未提供的情况下应用自动完成。这使产品能够与例如 Grappelli 的自动完成产品协同工作。

0.5

  1. 保留多选值的排序顺序。

0.4

  1. 弃用 SIMPLE_AUTOCOMPLETE_MODELS 设置。

  2. Django 1.6.2 兼容性。

0.3.3

  1. Django 1.5 的测试失败。在此问题解决之前,请锁定到 1.4.x。

  2. 处理被多选删除的数据库中项目引用的情况。

0.3.2

  1. 允许为每个模型指定 search_field,以防默认设置不足。

0.3.1

  1. 修复了 Unicode 错误。

0.3

  1. max_items 设置指定在自动完成下拉列表中显示的最大项目数。

  2. duplicate_format_function 设置允许在自动完成下拉列表中有多个项目具有相同的字符串值时追加自定义字符串。

0.2

  1. 在某些情况下清除自动选择辅助程序,以获得更干净的界面。

  2. 使用对象字符串表示进行显示,而不是查找字段名。

0.1

  1. 添加多选自动完成小部件。

  2. 阈值设置以确定何时显示自动完成小部件而不是正常小部件。

0.0.1

  1. 初始发布。

项目详情


下载文件

下载您平台上的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源分布

django-simple-autocomplete-1.11.tar.gz (148.6 kB 查看哈希值)

上传时间 源码

构建版本

django_simple_autocomplete-1.11-py2.7.egg (161.2 kB 查看哈希值)

上传时间 源码