“django admin search”是django admin的高级搜索模式

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


django管理搜索

这个项目在django admin中实现了一个搜索模式来过滤您的queryset

obs:此项目仅在django admin中有效

图像:

管理列表中的按钮: input

打开模式: modal

安装:

pip install django-admin-search

用法:

  1. 在settings.py中添加到已安装的应用程序:

    INSTALLED_APPS = [  
        ...
        'django_admin_search',
        ...
    ]
    
  2. 为模型创建搜索表单:

    from .models import Area
    from django.forms import ModelForm, Form
    from django.forms import DateField, CharField, ChoiceField, TextInput
    
    
    class YourFormSearch(Form):
        name = CharField(required=False)
        date = DateField(required=False, widget=TextInput(
            attrs={ 
                'filter_method': '__gte',
            }
        ))
    
  3. 在您的管理员中:

    from django_admin_search.admin import AdvacedSearchAdmin
    from .models import YourModel
    from .form import YourForm, YourFormSearch
    
    @register(YourModel)
    class YourAdmin(AdvacedSearchAdmin):
        form = YourForm
        search_form = YourFormSearch
    

高级:

  1. 同一字段中的多个筛选器:

    class YourFormSearch(Form):
        ...
        name = CharField(required=False)
        begin = DateField(required=False, widget=TextInput(
            attrs={
                'filter_field': 'date', 
                'filter_method': '__gte',
            }
        ))
        end = DateField(required=False, widget=TextInput(
            attrs={
                'filter_field': 'date', 
                'filter_method': '__lte',
            }
        ))
    
  2. 添加占位符和掩码

    class YourFormSearch(Form):
        ...
        date = DateField(required=False, widget=TextInput(
            attrs={
                'data-mask': "00/00/0000", 
                'placeholder': 'MM/DD/YYYY'
            }
        ))
    
  3. 字段的自定义筛选查询

    from django_admin_search.admin import AdvacedSearchAdmin
    from .models import YourModel
    from .form import YourForm, YourFormSearch
    
    @register(YourModel)
    class YourAdmin(AdvacedSearchAdmin):
        def search_FieldNameHere(request, field_value, param_values):
            """
                intercept query filter for description field
            """
            query = Q()
            # your Q logic here
            return query
    

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

推荐PyPI第三方库


热门话题
IE中的java跨域cookie问题   重复java中已经满足的循环   编译java RMI服务器时出错   JavaServlet POST中作为参数传递的javascript大型JSON数组数据为空   java片段未每次刷新/调用   java无法编译。错误消息   java如何构造大型类?   java Hibernate:TableThingsDB。事情并不存在   java如何操作从匹配项创建的数组。发现   循环以搜索和显示数组Java的某些部分   加载或注册SQLite JDBC驱动程序时出现java问题   活动和服务之间的java连接   JavaGWTG2D:ie8中的drawImage   java在安卓中设置hessian阈值   在Tomcat中使用Logback时发生java错误