2011-08-19 82 views
3

我试图将Django项目的admin.py拆分成单独的文件,但失败了。拆分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 * 
    

但我没有在我的管理网站中看到Some_Model。我的解决方案正确吗?我怎样才能解决这个问题?

回答

12

admin只是一个python模块。因此,拆分这将是如下的正确方法:

  • 创建一个名为admin代替admin.py
  • 使用管理文件夹内的多个文件夹,如您Some_Model_admin.py
  • admin文件夹中创建一个__init__.py并将所有文件导入到它中。
  • 您可能还需要包含__all__以提供干净的界面。
+1

小记在init>“和进口*所有文件到它“意味着许多字符串像''从Some_Model_admin导入*''从Some_Other_Model_admin导入*'在'__init __。py' – seriyPS

+0

谢谢你的回答,我想我需要更多地了解Python模块导入:-) – yegle

0

您应该从Some_Model_admin导入。

from my_app.seperated_admins.Some_Model_admin import * 

的东西都应该工作正常,然后

或者你可以导入全部的分割文件到在这种情况下

from my_app.seperated_admins import * 

应该工作有关