2

奇妙な問題があります。admin.pyで私は言うことができます:

admin.site.register(MyModel)

これは明らかに問題ありません。ここで、ユーザーアクションの結果としてこのモデルが自動的にロードされるようにします。

def user_action_from_admin_panel(......):
    .....
    admin.site.register(MyModel)

MyModelクラスgetsは、リンクのないプレーンテキストとして管理者に表示されます。これを解決するためのアイデアはありますか?

4

4 に答える 4

2

これが必要かも

from django.core.urlresolvers import clear_url_caches
from django.utils.importlib import import_module


def user_action_from_admin_panel(......):
    .....
    admin.site.register(MyModel)
    reload(import_module(settings.ROOT_URLCONF))
    clear_url_caches()
于 2013-03-17T22:58:59.900 に答える
0

その理由はおそらく、Django がその管理セクションのモデルと一致する URL を見つけられなかったためです。したがって、管理領域のそのモデル行は無効に設定され、追加の追加または編集リンクはありません。

場合によっては、モデルを登録するためのコードが管理 URL ( django.contrib.admin.site.AdminSite.get_urls() ) の構築後にトリガーされます。回避策は、グローバル URL の管理 URL パターン全体を更新するか、django-quickadminという名前の Django アプリを使用すると、追加のコードを作成することなく、すべてのカスタム モデルが admin に自動的に読み込まれます。

于 2015-04-10T09:44:41.957 に答える