拆分Django项目的“admin.py”?

时间:2011-08-19 07:47:22

标签: python django

我正在尝试将Django项目的admin.py拆分为单独的文件,但失败了。

我无法从谷歌找到有关如何分割它的信息,所以我必须自己尝试。这是我试过的:

  1. 创建一个名为separated_admins的目录,并在其中放置一个空的__init__.py
  2. 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)
    
  3. admin.py中,我添加了以下行:

    from my_app.seperated_admins import *
    
  4. 但我在管理网站上没有看到Some_Model。我的解决方案对吗?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:12)

admin只是一个python模块。所以正确的分裂方式如下:

  • 创建名为admin的文件夹,而不是admin.py
  • 在管理文件夹中使用多个文件,例如Some_Model_admin.py
  • __init__.py文件夹中创建admin,然后将所有文件导入其中。
  • 您可能还希望包含__all__以提供干净的界面。

答案 1 :(得分:0)

您应该从Some_Model_admin导入。

from my_app.seperated_admins.Some_Model_admin import *

事情应该正常工作

或者你可以将所有拆分文件导入到init中,在这种情况下

from my_app.seperated_admins import *

应该有效