2014-04-19 104 views
0

在django 1.6中,我有一个命令用于对数据库进行分析,并带有一组函数。django目录结构模块的命令

├── management 
│   ├── __init__.py 
│   └── commands 
│    ├── __init__.py 
│    ├── analysis.py 

我喜欢打破analysis.py在一组文件(可能是模块...)。 模块用于django命令的正确目录结构是什么?

也许是这样的...?

├── management 
│   ├── __init__.py 
│   ├── analysis_module 
│   └── commands 
│    ├── __init__.py 
│    ├── analysis.py 

和测试为analysis_module,究竟是什么的analysis_module测试正确ubication?

+0

对我来说似乎很合理。 [这个答案](http://stackoverflow.com/questions/5836075/are-there-any-purposes-for-the-management-folder-in-django-other-than-commands)意味着'管理'目录并没有太多的用处,所以我怀疑有没有把你的通用代码放在那里的风险。 –

+0

如果分析模块可能可重用,我会将其从您的应用程序中完全移出,并将其导入到您的'analysis.py'命令中。我喜欢将django应用程序/模块和非django/python模块尽可能分开 –

+0

@ TimmyO'Mahony是的,我正在考虑像您一样的解决方案,并将其添加为答案。但我不确定是否是正确的导入方式... – JuanPablo

回答

0

一个选项,把代码modude了Django项目

├── analysis_module 
├── test 
├── django_project 
│   ├── app 
│   │   ├── __init__.py 
│   │   ├── admin.py 
│   │   ├── management 
│   │   │   ├── __init__.py 
│   │   │   └── commands 
│   │   │    ├── __init__.py 
│   │   │    └── analysis.py 
│   │   ├── models.py 
│   │   ├── tests.py 
│   │   ├── urls.pyc 
│   │   └── views.py 
│   └── django_proyect 
│    ├── __init__.py 
│    ├── settings.py 
│    ├── urls.py 
│    └── wsgi.py 

,但对于这一点,我需要的模块添加到路径sys.path也许在manage.py

# manage.py 
sys.path.append(os.path.abspath(__file__ + '/../../')) 

和进口从分析命令

# analysis.py 
import analysis_module 

用这个我可以把测试分别为analysis_module。