首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django admin.py过滤器中的HTML输入文本框

在Django中,admin.py是一个用于定义管理界面的模块。过滤器是一个用于在管理界面中搜索和过滤数据的功能。在admin.py中,可以使用list_filter属性来定义过滤器。

admin.py中,HTML输入文本框可以用于自定义过滤器的显示样式。为了实现这个功能,可以使用Django的SimpleListFilter类来创建自定义过滤器。在自定义过滤器中,可以使用HTML标签来定义输入文本框的样式。

例如,以下代码定义了一个自定义过滤器,其中包含一个HTML输入文本框:

代码语言:python
复制
from django.contrib import admin
from django.utils.html import format_html
from django.utils.translation import gettext_lazy as _

class CustomFilter(admin.SimpleListFilter):
    title = _('custom filter')
    parameter_name = 'custom_filter'

    def lookups(self, request, model_admin):
        return (
            ('text_input', format_html('<input type="text" name="custom_filter" value="{}">', self.value())),
        )

    def queryset(self, request, queryset):
        if self.value():
            return queryset.filter(some_field__icontains=self.value())
        else:
            return queryset

在上面的代码中,lookups方法返回一个包含HTML输入文本框的元组。queryset方法使用输入的文本框值来过滤查询集。

然后,可以将自定义过滤器添加到admin.py中的模型管理器中:

代码语言:python
复制
from django.contrib import admin
from .models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    list_filter = (
        'custom_filter',
        # other filters...
    )

admin.site.register(MyModel, MyModelAdmin)

这样,在Django管理界面中,就可以看到一个自定义的HTML输入文本框过滤器。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券