1、在使用Django Admin的时候,有时候需要根据需求来显示用户所看到的页面,这个时候则需要自定义list_filter,通过自定的搜索栏来搜索对应的数据。 2、在使用ForeignKey或者ManyToManyField字段的时候,在默认的list_display中是无法查询到对应的数据的,简而言之,需要在list_display中自定义一个字段来获取对应的数据。 model...
]defqueryset(self, request, queryset): status2= request.GET.get("status2")#根据选择条件,自定义最终返回的过滤数据,或使用 Order.objects.filter 进行返回returnqueryset.filter(status=status2, is_delete=True) @admin.register(Order)classOrderAdmin(admin.ModelAdmin): list_display= ["id","user","...
django框架的admin模块,通过list_filter提供给用户自定义分类查询的接口,并且我们可以在原有类的基础上扩展出符合自身应用场景的过滤器。 定义模型 以Student 模型为准,管理类为 StudentAdmin。 class Student(models.Model): id = models.AutoField(primary_key=True) first_name = models.CharField( max_length=20...
继承自django.contrib.admin.SimpleListFilter的类,需要给它提供title和parameter_name属性来重写lookups和queryset方法,title为页面上该过滤器的标题、parameter为加载页面时url中携带的参数名称: fromdjango.utils.translationimportugettext_lazyas_classAgeListFilter(admin.SimpleListFilter):title=_(u'年龄段')parameter_...
admin.site.register(Category, CategoryAdmin) 多对多关系的选择之filter_horizontal选项 由于Django admin默认的多对多关系(ManyToMany)选择器是复选框,非常的不好用。一个更好的方法是使用filter_horizontal或filter_vertical选项,如下图所示: 显示多个数据表数据在同一页面上之InlineModelAdmin类 ...
默认创建模型之后,在应用的 admin.py中进行绑定,然后就可以通过 自带的后台进行模型的管理,比如这里的 手机和手机借用记录的管理。 但是默认是没有”申请借用“的功能的,这个就需要我们开发对应的功能,并且添加到Django Admin后台去。 核心知识: 通过继承admin.ModelAdmin来实现自定义 模型的ModelAdmin 行为 (展示、搜...
classStatusFilter(SimpleListFilter): title ='status'parameter_name ='status'deflookups(self, request, model_admin):return[(1,'已下线'), (2,'进行中'), (3,'未到测试区间')]defqueryset(self, request, queryset): this_day = datetime.date.today()# pdb.set_trace()ifself.value() =='3...
自定义过滤器本质上是一个类,该类需要继承admin.SimpleListFilter类,并重写lookups()与queryset()方法,其中lookups()方法用于设置分类,queryset()方法用于查询分类数据。在admin.py中自定义过滤器类,示例代码如下: 以上代码定义的自定义过滤器中,类属性title表示列表页上过滤器的名称,类属性 parameter_name表示访问路...
classAuthDecadeBornListFilter(DecadeBornListFilter):deflookups(self,request,model_admin):ifrequest.user.is_superuser:returnsuper().lookups(request,model_admin)defqueryset(self,request,queryset):ifrequest.user.is_superuser:returnsuper().queryset(request,queryset) ...
使用SimpleListFilter¶ 对于自定义过滤,你可以通过子类化 django.contrib.admin.SimpleListFilter 来定义自己的列表过滤器。你需要提供 title 和parameter_name 属性,并重写 lookups 和queryset 方法,例如: from datetime import date from django.contrib import admin from django.utils.translation import gettext_lazy...