如何拆分Django项目的“admin.py”?
我正在尝试把Django项目中的admin.py
文件拆分成几个单独的文件,但没有成功。
我在网上找不到关于如何拆分它的信息,所以只能自己试试。以下是我尝试过的步骤:
- 创建一个名为
separated_admins
的文件夹,并在里面放一个空的__init__.py
文件。 在
separated_admins
文件夹里创建一些文件,像这样:# file my_app/seperated_admins/Some_Model_admin.py from my_app.models import Some_Model from django.contrib import admin admin.site.register(Some_Model)
在
admin.py
文件中,我添加了类似这样的代码:from my_app.seperated_admins import *
但是我在我的管理网站上没有看到Some_Model
。我的做法对吗?我该如何解决这个问题?
2 个回答
1
你应该从 Some_Model_admin 这个地方导入。
from my_app.seperated_admins.Some_Model_admin import *
这样的话,应该就没问题了。
另外,你也可以把所有分开的文件都导入到初始化文件里,这样的话
from my_app.seperated_admins import *
也应该能正常工作。
19
admin.py
其实就是一个 Python 模块。所以,把它拆分的正确方法是这样的:
- 先创建一个叫
admins
的文件夹,而不是直接用admin.py
文件。 - 在这个
admins
文件夹里,可以用多个文件,比如你的some_model_admin.py
。 - 在
admins
文件夹里创建一个__init__.py
文件,把所有的文件都导入到这个文件里。 - 你可能还想加一个
__all__
,这样可以提供一个更整洁的接口。