跳转到主要内容

django-searchable-select - 一个更好的、更快的Django多选小部件,带有建议

项目描述

django-searchable-select

https://travis-ci.org/and3rson/django-searchable-select.svg
https://coveralls.io/repos/github/and3rson/django-searchable-select/badge.svg

一个更好的、更快的Django多选小部件,带有建议

这是什么?

此插件为Django管理页面上的标准多选选择提供了一个替代品。

您可以用它作为ManyToManyField的自定义小部件。

功能

  • 过滤在服务器端执行,因此显著提高了性能。

  • 使用Twitter Typeahead提供建议完成。

  • 与可以选择成千上万选择的ManyToMany字段配合使用效果很好,例如User - City关系。

之前

Before

之前

之后

Before

之前

安装

  1. 安装django-searchable-select

    $ pip install django-searchable-select
  2. 将‘searchableselect’添加到您的设置中。

    # settings.py
    
    INSTALLED_APPS = (
        # ...
        'searchableselect',
        # ...
    )
  3. 将用于建议引擎的URL模式添加到您的根urls.py

    # urls.py
    
    urlpatterns = patterns(
        '',
        # ...
        url('^searchableselect/', include('searchableselect.urls')),
        # ...
    )
  4. 在您的模型管理类中使用小部件

    from django import models, forms
    from searchableselect.widgets import SearchableSelect
    from models import Traveler
    
    class TravelerForm(forms.ModelForm):
        class Meta:
            model = Traveler
            exclude = ()
            widgets = {
                'cities_visited': SearchableSelect(model='cities.City', search_field='name', limit=10)
            }
    
    
    class TravelerAdmin(admin.ModelAdmin):
        form = TravelerForm
    
    admin.site.register(Traveler, TravelerAdmin)

    请记住始终使用三个关键字参数初始化SearchableSelectmodelsearch_fieldmany

    • model是表示您项目中模型的字符串,形式为APP_NAME.MODEL_NAME,例如‘cities.City’

    • search_field是模型中用于过滤的字段,例如‘name’

    • 对于 ManyToManyField 必须为 True,对于 ForeignKey 必须为 False

    • limit (可选)指定要检索的最大条目数。默认为 10。

示例应用

只需从 example 目录中运行项目,转到 http://127.0.0.1:8000,以 admin/admin 登录,并尝试添加猫咪!

支持版本

  • Python 2.7.x:Django 1.7,1.8,1.9,1.10

  • Python 3.x:Django 1.8,1.9,1.10,2.0

已知问题

  • 未测试空字段。

贡献

我期待收到错误报告和任何形式的贡献。

许可协议

只要保持作者引用,您可以在任何地方使用此内容。请参阅 LICENSE 获取更多信息。

项目详情


下载文件

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

源分发

django-searchable-select-1.5.0.tar.gz (61.8 kB 查看哈希值)

上传时间

由以下组织支持