13

Django チェンジリスト テーブルは非常に優れています。検索可能、フィルター可能、複数選択アクションなどです。

アプリのカスタム バックエンドを構築していますが、これはまさに私が必要としているものであり、再利用する必要があることに気づき続けています。

Django の管理アプリ以外で変更リストを使用した経験のある人はいますか?

私が現在到達したのは次のようなものです:

from profile.admin import ProfileAdmin
from django.contrib.admin.sites import AdminSite
from profile.models import Profile
profile_admin = ProfileAdmin(Profile, AdminSite())
return profile_admin.changelist_view(request)

誰かがこれを経験したことがあるか、または代替案を提案できるかどうかを知りたいです。

4

1 に答える 1

9

クラスとしての ChangeList は本当にクールで機能が豊富です。ただし、AdminSite モノリスのコンテキスト外で使用するのは困難です。

ChangeList クラスは、12 個の必須__init__()パラメーターを取ります。その数だけであなたを遠ざける必要がありますchangelist_view(). これらのパラメーターは Django 1.1 から同じままですが、1.0 から変更されました。これは Django の内部オブジェクトであり、インターフェイスが安定していることには依存しません。

ChangeList を使用する最良の方法、または具体的にはチェンジリストの利点(これが目的です)を取得するための最良の方法は、changelist_view()メソッドを使用することです。もちろん、それを使用するには、AdminSite を使用/サブクラス化する必要があります。これは実行する価値があるか、少なくとも試してみる価値があります。あなたはすでにいるようです。

そのメソッドは、それを指す URL ルートでrequestパラメーターと likeを受け取ります。/(?P<app_label>%s)/(?P<model_name>%s)/

コードを掘り下げる:

  • ChangeList住むdjango.contrib.admin.views.main
  • changelist_view()上の方法ですdjango.contrib.admin.options.ModelAdmin

更新: Django 1.4 では、1 つと 2 つの新しいパラメーターをそれぞれ追加することで、ChangeListとの両方が変更されました。changelist_view()

于 2011-11-08T02:54:29.423 に答える