我正在尝试添加自定义/重写的管理员站点,因为我需要一个不同的管理员模板。我按照医生说的做了一切: https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#overriding-the-default-admin-site
project/admin.py
from django.contrib.admin import AdminSite
class NewAdminSite(AdminSite):
index_template = 'admin/index.html'
site_header = 'Administration'
admin_site = NewAdminSite(name='newadmin')
project/apps.py
class NewAdminConfig(AdminConfig):
default_site = 'project.admin.NewAdminSite'
我没有任何其他应用程序,project是我的根目录 ofc I在URL.py中添加了admin_site.url而不是admin.site.url,在apps.py中创建了自定义AdminConfig,并将新的AdminConfig添加到已安装的应用中而不是django.contrib.admin
问题是,我现在收到了:
AdminSiteClass=导入\u字符串(apps.get\u app\u config('admin')。默认\u站点)
文件“C:\Users\User.virtualenvs\ssccms-fGQRLLK4\lib\site packages\django\utils\module\u loading.py”,第24行,导入字符串 )犯错误
ImportError:模块“project.admin”未定义“NewAdminSite”属性/类
我的文件夹结构:
manage.py
计划
workdir
节点单元
地点
pipfile.lock
皮普尔
wsgi
希望这对于文件夹结构来说足够了,这是django shop cookiecutter项目的示例结构
编辑:
是的,这肯定是一个循环导入错误。我现在的解决方法是简单地通过以下方式使用给定的admin.site:
admin.site.index_template = 'admin/newadminindextemplate.html'
它起作用了!这就是我想要的。但文件上说: https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#root-and-login-templates
If you wish to change the index, login or logout templates, you are better off creating your own AdminSite instance.
我试过:
https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#customizing-the-adminsite-class
我在问题的第一个链接中粘贴了替代部分,但现在有了
django.urls.exceptions.NoReverseMatch: Reverse for 'cascade_texteditor_config' not found. 'cascade_texteditor_config' is not a valid view function or pattern name.
现在我的新问题是:
是否需要创建自己的索引模板实例?文档中没有解释,所以我以后在使用admin.site.index_模板时是否会遇到任何问题
我刚刚犯了一个类似的错误。这有点令人困惑,在我的例子中,这是由于循环导入
在我的情况下,以下几点有帮助:
NewAdminSite
类的文件顶部导入的内容转换为本地导入(在需要它们的函数内部)admin_site
变量的实例化移动到单独的文件中这两个问题在粘贴的代码中实际上都不可见,但可能会让您知道要查找什么
相关问题 更多 >
编程相关推荐