Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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
Python Django应用程序和子目录_Python_Django - Fatal编程技术网

Python Django应用程序和子目录

Python Django应用程序和子目录,python,django,Python,Django,在Django中,我尝试将一个应用程序(因此只有一个应用程序在已安装的应用程序中)划分为几个子目录,结构如下: app views.py app\subdir1 views.py app\subdir2 views.py app\views.py文件仅包含 from subdir1.views import * 因此,我将app.subdir1.views的名称空间折叠为app.views。然而,这不是理想的解决方案,我宁愿使用 import subdir1.view

在Django中,我尝试将一个应用程序(因此只有一个应用程序在已安装的应用程序中)划分为几个子目录,结构如下:

app
    views.py
app\subdir1
    views.py
app\subdir2
    views.py
app\views.py文件仅包含

from subdir1.views import *
因此,我将app.subdir1.views的名称空间折叠为app.views。然而,这不是理想的解决方案,我宁愿使用

import subdir1.views
并且不会折叠名称空间,但是此构造使Django抱怨错误“无法导入app.views.subdir1.json。父模块app.views.subdir1不存在。” 这当然是正确的,因为父模块不存在


所以我想提出一个问题:这个dir结构可能吗?

应该可能,你可以在
url.py
中使用
app.subdir1.views.foo
,然后完全避免在
app/views.py
中导入


可能其中一个目录中缺少
\uuuuu init\uuuuuuuupy.py
文件?

我尝试过,是的,视图可以工作,但是尝试使用syncdb失败,因为app\subdir1不被视为应用程序。在已安装的应用程序中添加app\subdir1修复了此问题。。。但这是我想避免的部分。如果你只是在你的子目录中提供视图,你就不会有这个问题。如果你也有模型,那么除了将其添加到已安装的应用程序之外别无选择。你完全正确,托尔斯滕,我看到它不起作用,但我无法解释为什么它不起作用。因为在应用程序中,我放置了一个models.py woth行,比如:from subdir1.models import*,据我所知,这将该subdir1的范围“分解”到应用程序范围中。因此,我可能需要提前学习;-)