Django-admin autoregister - 自动模型注册

时间:2013-06-07 10:11:16

标签: django-models django-admin

我想将所有应用程序模型注册到admin,有没有办法自动创建。 我有很多应用程序,我需要自动注册

1 个答案:

答案 0 :(得分:-1)

据我所知,没有简短/直接的方法可以做到这一点,但你可以编写一个简短的snipplet来实现这一目标。这是我用来处理这个问题的snipplet。但是,您必须对管理文件进行一些修改。

<强> somefile.py

from django.contrib import admin


def admin_register(namespace):
    for name, model_admin in namespace.copy().iteritems():
        if name.endswith("Admin"):
            model = namespace[name[:-5]]
            try:admin.site.register(model, model_admin)
            except:raise

然后,您必须编辑 admin.py 文件,并将Admin postfix添加到您的所有管理员类别中:

<强> admin.py

from somefile import admin_register

class SomeModelAdmin(admin.ModelAdmin):
    pass

并在每个 admin.py 文件的末尾添加以下

admin_register(namespace=globals())

这将获取全局命名空间中所有已定义的类,函数和变量,并选择以Admin结尾的类。您需要在每个管理文件的末尾包含此行。

对于Admin Class定义,如果您不想为Admin类指定任何属性,只需编写pass即可。只需为您希望在管理面板中看到的人添加管理员课程。

相关问题