我在django管理页面中添加了一个过滤器下拉列表。
class MyAdmin(admin.ModelAdmin):
list_filter = ('status',)
默认情况下,如果您在管理视图中转到模型,则默认显示所有记录。 但我希望它过滤:
status="open"
并默认显示。这可以实现吗?
答案 0 :(得分:0)
我认为你需要的是ModelAdmin.ordering https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.ordering
如果您只需要status ='open',您可以为modeladmin定义自定义默认查询集 https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.queryset 并限制你的 将项目列为status ='open'。 (注意)但是在这种情况下,管理员将无法访问其他记录(状态!='打开')。
答案 1 :(得分:-1)
如果我理解正确,您可以在模型中重新定义默认模型管理器
class myManager(models.Manager):
return self.filter(status = 'open')
class myModel(models.Model):
...
objects = myManager()
但我认为有一种更优雅的方式。