2011-07-28 4 views
2

このような私のdjango管理ページにフィルタドロップダウンを追加しました。デフォルトではModelAdminのフィルタがデフォルトですべてのレコードを表示しないようにするにはどうすればよいですか?

class MyAdmin(admin.ModelAdmin): 
    list_filter = ('status',) 

あなたが管理者ビューでモデルに行けば、それはデフォルトですべてのレコードを表示します。 フィルタしたい:

status="open" 

これをデフォルトで表示します。これは達成可能ですか?

+2

可能な複製http://stackoverflow.com/questions/851636/default-filter-in-django-admin/3783930#3783930 –

答えて

0

は、私はあなたがステータスのみが必要な場合は https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.ordering

をModelAdmin.orderingされる必要があるものだと思う=「オープン」をあなたのModelAdminの https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.queryset のためのカスタムデフォルトのクエリセットを定義してあることをご リスト項目を制限している可能性がstatus = 'open'のみです。 (注意)しかしその場合、他のレコード(status!= 'open')は管理者からアクセスできなくなります。

-1

私は理解して修正する場合は、モデル

class myManager(models.Manager): 
     return self.filter(status = 'open') 

    class myModel(models.Model): 
     ... 
     objects = myManager() 

にデフォルトモデルマネージャを再定義するかもしれませんが、私はもっとエレガントな方法があると思います。

関連する問題