我有很多应用程序,我想激活我的所有应用程序中的所有模型的管理员。有没有办法激活django管理网站没有admin.py
我记得几个月我的一个朋友做了一件使管理站点没有任何admin.py文件
他确实在settings.py
文件的东西与INSTALLED_APPS
和所有的应用程序的显示,在管理部分
我现在无法找到。任何人??
我有很多应用程序,我想激活我的所有应用程序中的所有模型的管理员。有没有办法激活django管理网站没有admin.py
我记得几个月我的一个朋友做了一件使管理站点没有任何admin.py文件
他确实在settings.py
文件的东西与INSTALLED_APPS
和所有的应用程序的显示,在管理部分
我现在无法找到。任何人??
你的朋友可能不喜欢的东西......
from django.db.models import get_models
for model in get_models():
admin.site.register(model)
在他的admin.py文件之一。
我不知道,我只会这样做测试的东西。这太神奇了。请记住,您必须明确unregister
您可能需要再次注册的任何型号。
只需按照文档中的说明进行操作即可。 They describe how to activate the django admin site here。您需要修改urls.py
。而已。
该文件中甚至有评论指出要取消注释的三条线。
您没有得到。我知道一个,但为此我必须在admin.py文件中写入autoregister。但我不想为所有的应用程序编写代码 – user825904
您总是需要在某处调用'admin.site.register(YouModel)'。 – aychedee
我建议你在你的应用中包含admin.py
,因为它是Django惯例,并且你试图实现的某些明确性是件好事;我使用的解决方案是以下默认admin.py
模板,适用于我开始的所有新应用程序:
# Auto registers any new models with the admin, eventually you will want a tailored admin.py
from django.contrib import admin
current_app = models.get_app(__package__)
for model in models.get_models(current_app):
admin.site.register(model, admin.ModelAdmin)
我只记得他的函数autoregister(* settings.INSTALLED_APPS)中的一行。我不知道那是什么功能。那是在urls.py文件中,不是无效的admin.py文件 – user825904
比我上面发布的东西效率低。 INSTALLED_APPS包含字符串,所以你必须解决模型类... get_models()实际上返回模型类。 也许他做了一些实际上写入物理python文件的东西,如果它们不存在的话。 –
是否从所有已安装的应用程序中返回模型并提供答案 – user825904