跳转到主要内容

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 非常简单。只需按照以下简单步骤进行:

  1. 将 'searchform' 添加到您的 settings.py 文件中的 INSTALLED_APPS 元组中。这是必要的,以便 Django 可以找到默认的搜索表单模板。

  2. 在您的 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 (24.3 kB 查看哈希值)

上传时间

支持