为django应用程序提供自动完成功能
项目描述
为django应用程序提供自动完成功能
支持以下后端
solr
数据库(使用LIKE)
redis(相当实验性)
使用符合典型的django registration-y模式
from django.db import models from completion import site class Blog(models.Model): title = models.CharField(max_length=255) pub_date = models.DateTimeField() content = models.TextField() published = models.BooleanField(default=True) def get_absolute_url(self): return reverse('blog_detail', args=[self.pk]) class BlogProvider(AutocompleteProvider): def get_title(self, obj): return obj.title def get_pub_date(self, obj): return datetime.datetime(2010, 1, 1) def get_data(self, obj): return {'stored_title': obj.title, 'url': obj.get_absolute_url()} def get_queryset(self): return self.model._default_manager.filter(published=True) site.register(Blog, BlogProvider)
博客模型现在已准备好自动完成,但必须在返回之前将其存储
>>> from completion import site >>> site.store_providers() >>> site.suggest('tes') [ {u'stored_title': u'testing python', u'url': u'/blogs/1/'}, {u'stored_title': u'testing python code', u'url': u'/blogs/3/'}, {u'stored_title': u'web testing python', u'url': u'/blogs/2/'}, {u'stored_title': u'unit tests with python', u'url': u'/blogs/4/'}, ] >>> site.suggest('testing') [ {u'stored_title': u'testing python', u'url': u'/blogs/1/'}, {u'stored_title': u'testing python code', u'url': u'/blogs/3/'}, {u'stored_title': u'web testing python', u'url': u'/blogs/2/'}, ]
可以在任何时间向索引中添加或删除对象
>>> site.store_object(some_blog_instance) >>> site.remove_object(some_other_obj)
如果您在自动完成索引中具有多种类型的对象,可以通过将“models”传递给suggest方法来限制结果为特定类型
>>> site.suggest('python', models=[Blog, Photo])
配置
AUTOCOMPLETE_BACKEND设置允许您指定用于自动完成的后端。选项包括
completion.backends.db_backend.DatabaseAutocomplete
completion.backends.redis_backend.RedisAutocomplete
completion.backends.solr_backend.SolrAutocomplete
配置Redis
将以下内容添加到您的设置文件中,其中连接字符串为<主机名>:<端口号>:<数据库名>
AUTOCOMPLETE_REDIS_CONNECTION = 'localhost:6379:0'
配置Solr
将以下内容添加到您的设置文件中
AUTOCOMPLETE_SOLR_CONNECTION = 'https://:8080/solr/autocomplete-core/'
此外,如果您最终使用Solr(我推荐这样做!),您需要确保您的solr模式中具有正确的字段定义。可以通过运行以下命令自动生成一个示例模式:
django-admin.py autocomplete_schema
这将在一个名为schema.xml的文件中,放在您的当前目录中。
安装
python setup.py install
或
将 completion 文件夹添加到您的 python-path
项目详情
关闭
django-completion-0.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6728d92c04cc5e0d7ed383d372f5f35fa444318d7589b4e2b2e15369a438acde |
|
MD5 | 9049b5417555b287859deec9bbf6557f |
|
BLAKE2b-256 | 1a071a5f70e9b1a17c5e2d646153e5dd42c974abd1030703a272a67dad769d36 |