django的基于类的搜索列表视图

django-search-views的Python项目详细描述


django搜索视图

Build Status

这个包提供了一个基于django类的视图,用于显示列表 具有搜索表单的对象。完整文档位于 (http://inmagik.github.io/django-search-views/)。

功能:

  • 允许搜索多个字段
  • 支持分页
  • 为每个字段设置筛选运算符
  • 设置固定过滤器
  • 使用过滤器的值列表

安装

来自PYPI:

pip install django-search-views

来源:

python setup.py install

使用量

important:直到v.1.0api可能发生更改。请拿着 看一下changelog然后毫不犹豫地给我们发邮件 或者,如果从旧版本迁移时遇到问题,请打开问题。 很抱歉!.

搜索列表视图

待定

示例

以下代码设置用于显示 “演员名单”。

型号.py:

class Actor(models.Model):
    name = models.CharField(max_length=32)
    surname = models.CharField(max_length=32)
    age = models.IntegerField()

forms.py

from .models import Actor
from django import forms
class ActorSearchForm(forms.Form):
    search_text =  forms.CharField(
                    required = False,
                    label='Search name or surname!',
                    widget=forms.TextInput(attrs={'placeholder': 'search here!'})
                  )

    search_age_exact = forms.IntegerField(
                    required = False,
                    label='Search age (exact match)!'
                  )

    search_age_min = forms.IntegerField(
                    required = False,
                    label='Min age'
                  )


    search_age_max = forms.IntegerField(
                    required = False,
                    label='Max age'
                  )

views.py

from .model import Actor
from .forms import ActorSearchForm
from search_views.search import SearchListView
from search_views.filters import BaseFilter

class ActorsFilter(BaseFilter):
    search_fields = {
        'search_text' : ['name', 'surname'],
        'search_age_exact' : { 'operator' : '__exact', 'fields' : ['age'] },
        'search_age_min' : { 'operator' : '__gte', 'fields' : ['age'] },
        'search_age_max' : { 'operator' : '__lte', 'fields' : ['age'] },

    }

class ActorsSearchList(SearchListView):
    model = Actor
    paginate_by = 30
    template_name = "actors/actors_list.html"
    form_class = ActorSearchForm
    filter_class = ActorsFilter

查看模板“actors/actors\u list.html”:

{% extends "base.html" %}


{% block content%}

<div class="container">

    <h2>Actors list</h2>

    <form class="form-inline" action="" method="GET">
        {{ form }}
        <button class="btn" type="submit">Search</button>
        </fieldset>
    </form>

    <table class="table table-bordered table-condensed">
        <tr>
            <th>Name</th>
            <th>Surname</th>
            <th>Age</th>
        </tr>
        {% for object in object_list %}
        <tr>
            <td>{{object.name}}</td>
            <td>{{object.surname}}</td>
            <td>{{object.age}}</td>
        </tr>
        {% endfor %}
    </table>

    {% if is_paginated %}
        {% include "paginator.html" %}
    {% endif %}

</div>

{% endblock %}

变更日志

0.2.0

  • 过滤器现在在它们自己的类中配置,该类派生自 searchlist_views.filters.BaseFilter

0.3.0

  • 将主包从searchlist_views重命名为search_views

0.3.1

  • python 3兼容性

许可和开发

该项目由麻省理工学院授权和维护 Inmagik,建议和请求是 欢迎通过Github project page

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像