Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
命令模块的django目录结构_Django_Django Models_Django Commands - Fatal编程技术网

命令模块的django目录结构

命令模块的django目录结构,django,django-models,django-commands,Django,Django Models,Django Commands,在django 1.6中,我有一个用于对数据库进行分析的命令,以及一组函数 ├── management │   ├── __init__.py │   └── commands │   ├── __init__.py │   ├── analysis.py 我喜欢将analysis.py分解为一组文件(可能是一个模块…)。 django命令使用的模块的正确目录结构是什么 也许像这样 ├── management │   ├── __init__.py │   ├── anal

在django 1.6中,我有一个用于对数据库进行分析的命令,以及一组函数

├── management
│   ├── __init__.py
│   └── commands
│       ├── __init__.py
│       ├── analysis.py
我喜欢将analysis.py分解为一组文件(可能是一个模块…)。 django命令使用的模块的正确目录结构是什么

也许像这样

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

对于
分析模块的测试
分析模块测试的正确位置是什么?

a选项,将代码模块从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
但是为此,我需要在
manage.py

# manage.py
sys.path.append(os.path.abspath(__file__ + '/../../'))
并从“分析”命令导入

# analysis.py
import analysis_module

有了这个,我可以将测试单独放在分析模块上。

对我来说似乎是合理的。这意味着
管理
目录没有太多使用,因此我怀疑将您的通用代码放在那里会有任何风险。如果分析模块具有潜在的可重用性,我会将其全部移出您的应用程序,并将其导入您的
analysis.py
命令中。我喜欢将django应用程序/模块和非django/python模块分开possible@TimmyOMahony是的,我正在考虑一个解决方案,就像你评论的那样,我补充了这个作为答案。但我不确定是否是正确的进口方式。。。