Django的高级搜索表单应用
项目描述
搜索表单
Search Form 是一个Django应用,可以让您在项目中创建非常复杂的搜索表单。它的一些主要功能包括:
易于使用:只需少量点击和键盘输入即可添加、编辑和删除搜索词
易于集成:只需继承 Search Form 并添加您的搜索词即可
易于定制:您可以更改默认的搜索词,或使用自定义模板更改它们的布局,或者使用CSS更改样式
可访问性:它无需JavaScript即可工作,并能优雅地降级到夜间版本
Search Form 在GNU Lesser General Public License的条款下分发。
文档
安装
Search Form 依赖于jQuery 1.2.X,因此您需要下载它并将其放入您的媒体目录中。之后,您可以安装 search form。只需输入
easy_install searchform
Easy Install 将前往 Cheeseshop 并为您获取最新的 searchform。它还将免费为您在 site-packages 目录中安装它 :-)
教程
使用 search form 非常简单。只需按照以下简单步骤进行:
将 'searchform' 添加到您的 settings.py 文件中的 INSTALLED_APPS 元组中。这是必要的,以便 Django 可以找到默认的搜索表单模板。
在您的 urls.py 中添加以下 URL,在常规媒体 URL 之前:
(r'^media/searchform/', include('searchform.urls'))
现在,假设您在应用程序中有一个简单的模型
class Animal(models.Model): name = models.CharField(max_length=100) weight = models.CharField(max_length=100) max_speed = models.IntegerField()
并且您想要创建一个搜索表单,让用户在您的野生动物数据库中查找动物
from django.utils.datastructures import SortedDict from searchform.forms import SearchForm from searchform.terms import TextSearchTerm class AnimalSearchForm(SearchForm): fields = SortedDict(( ('name': TextSearchForm('The name', 'Name', 'which name')), ('weight': TextSearchForm('The weight', 'Weight', 'which weight')), ('max_speed': TextSearchForm('The max speed', 'Speed', 'which max speed')), ))
信不信由你,这就是设置搜索表单所需的全部Python代码。现在,是时候在您的视图中使用它了
def advanced_search(request): form = AnimalSearchForm('Find animals!', None) return render_to_response('your_template.html', {'form': form})
最后,让我们看看您的模板看起来像什么
{% extends "base.html" %} {% block extrahead %} <script type="text/javascript" src="{{ MEDIA_URL }}js/jquery-1.2.6.js"></script> {{ form.render_media|safe }} {% endblock %} {% block content %} <div id="search_form"> <form action="{% url yourapp.views.search_results %}" method="get"> {{ form }} </form> </div> {% endblock %}
这里有两点值得注意
您需要将jQuery 在 表单的媒体之前包含
搜索表单必须具有id 'search_form'
待办事项:解释如何自定义模板、如何编写自定义搜索词。解释QueryStringManager是什么
开发
您可以通过检出其子版本库来获取searchform的最新版本
svn co https//svnpub.yaco.es/djangoapps/searchform/trunk searchform
欢迎提交错误报告、补丁和建议。只需将它们放入我们的Trac系统中即可
https://tracpub.yaco.es/djangoapps/SearchForm
更改
0.1.1 (2010-12-22)
修复打包问题:媒体文件未安装
0.1.0 (2008-12-16)
初始发布
项目详情
searchform-0.1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b2f1fe9e736fcb2e217dd58c19a1b8976d8e348667aa7bef55b3267efe72a3c3 |
|
MD5 | 7032fd6d5f699c9a488b47a0da554de3 |
|
BLAKE2b-256 | 337a328e4fb3f1cb2b4876e6391ff2060bf98c57c293c58e390e1f1e660a38a9 |