django-searchable-select - 一个更好的、更快的Django多选小部件,带有建议
项目描述
django-searchable-select
一个更好的、更快的Django多选小部件,带有建议
这是什么?
此插件为Django管理页面上的标准多选选择提供了一个替代品。
您可以用它作为ManyToManyField
的自定义小部件。
功能
过滤在服务器端执行,因此显著提高了性能。
使用Twitter Typeahead提供建议完成。
与可以选择成千上万选择的
ManyToMany
字段配合使用效果很好,例如User - City关系。
之前
之前
之后
之前
安装
安装
django-searchable-select
。$ pip install django-searchable-select
将‘searchableselect’添加到您的设置中。
# settings.py INSTALLED_APPS = ( # ... 'searchableselect', # ... )
将用于建议引擎的URL模式添加到您的根
urls.py
。# urls.py urlpatterns = patterns( '', # ... url('^searchableselect/', include('searchableselect.urls')), # ... )
在您的模型管理类中使用小部件
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)
请记住始终使用三个关键字参数初始化
SearchableSelect
:model
、search_field
和many
。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 获取更多信息。
项目详情
下载文件
下载适用于您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。