我想将所有应用程序模型注册到管理员中,有什么方法可以自动创建。我有这么多应用程序,我需要自动注册
问问题
1557 次
1 回答
-1
据我所知,没有简短/直接的方法可以做到这一点,但是您可以编写一个简短的片段来实现这一点。这是我用来处理这个问题的snipplet。但是,您必须对管理文件进行一些修改。
一些文件.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
后缀添加到您的所有管理员类中,例如:
管理员.py
from somefile import admin_register
class SomeModelAdmin(admin.ModelAdmin):
pass
并在每个admin.py文件的末尾添加以下内容
admin_register(namespace=globals())
这将获取全局命名空间中所有已定义的类、函数和变量,并选择以 . 结尾的类、函数和变量Admin
。您需要在每个管理文件的末尾包含此行。
对于 Admin Class 定义,如果您不想为 Admin 类指定任何属性,只需编写pass
. 只需为您希望在管理面板中看到的人添加管理类。
于 2013-07-29T10:53:00.827 回答