9
私はカスタム管理のものを書いていて、管理者のすべての登録モデルを取得する必要があります。これは可能ですか?管理インデックスページでカスタムビューを作成する必要があります。Django admin - templatetagに登録されているすべてのモデルを取得するには?
私はカスタム管理のものを書いていて、管理者のすべての登録モデルを取得する必要があります。これは可能ですか?管理インデックスページでカスタムビューを作成する必要があります。Django admin - templatetagに登録されているすべてのモデルを取得するには?
あなたはモデル - > ModelAdminののadmin.site._registry
辞書にアクセスすることができます
@never_cache
def index(self, request, extra_context=None):
"""
Displays the main admin index page, which lists all of the installed
apps that have been registered in this site.
"""
app_dict = {}
user = request.user
for model, model_admin in self._registry.items():
# ...
注意をアンダースコアで始まる変数は、潜在的変化を受けていること:これは、管理者indexビューが何をするかである
>>> ./manage.py shell
In [1]: from urls import * # load admin
In [2]: from django.contrib import admin
In [3]: admin.site._registry
Out[3]:
{django.contrib.auth.models.Group: <django.contrib.auth.admin.GroupAdmin at 0x22629d0>,
django.contrib.auth.models.User: <django.contrib.auth.admin.UserAdmin at 0x2262a10>,
django.contrib.sites.models.Site: <django.contrib.sites.admin.SiteAdmin at 0x2262c90>,
testapp.models.Up: <django.contrib.admin.options.ModelAdmin at 0x2269c10>,
nashvegas.models.Migration: <nashvegas.admin.MigrationAdmin at 0x2262ad0>}
をdjangoの将来のバージョンで。
ユーザーが管理者である実際のアプリを入手する方法があるかどうか知っていますか? dahsboardの場合はアプリケーションを返しませんが、他の場合はすべてのラベルやオブジェクトを返します。 adminグローバルメニューのtemplatetagとして使用したいと思います。 – tunarob
私は理解していない、あなたは別の質問を開いて詳細を与えることができますか? – jpic