我想将所有应用程序模型注册到admin,有没有办法自动创建。 我有很多应用程序,我需要自动注册
答案 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
即可。只需为您希望在管理面板中看到的人添加管理员课程。