2017-08-10 157 views
1

我现在开始编写我的第一个Django项目,我需要为我的应用程序制作forms.py文件。我见过一些教程将文件存储在项目的主文件夹下,另一些存放在应用程序目录中。forms.py文件应该放在哪里?

  1. 哪些布局是最适合我,如果我想打只适用于一个应用形式?

  2. 是否适合使多个文件保留我的表单代码?

谢谢!

+1

我会把它放在与应用程序本身相同的文件夹中。如果您有多个应用程序使用不同的表单文件,我只会将它们保存在各自的应用程序文件夹中。 – GreenSaber

+0

好的,谢谢。所以我把它放在哪里并不重要? – Mathyou

+0

我会将每个应用程序的表单文件保存在该应用程序的相同文件夹中。所以'app_a'的表单文件将位于'app_a'目录中。 – GreenSaber

回答

3

下面是标准配置:

├── apps/ 
| ├── [app]/ 
| |  ├── __init__.py 
| |  ├── urls.py 
| |  ├── models.py 
| |  ├── forms.py # Forms 
| |  ├── admin.py 
| |  ├── views.py 
| |  ├── migrations/ 
| |  ├── management/ 
| |  ├── templates/ # Here or in the project root 
| |  └── (other) 
| | 
| └── __init__.py 
| 
... 

简而言之:守在应用相关的应用各种形式。它在概念上一致,直观,使代码更易于维护(通过分离)。

多应用程序表单/组件很少见。您可以将它们保存在名为“common”的应用中。这是一个非常流行的惯例。

这样,您就可以导入formsviews没有麻烦:

from .forms import FormA, FormB 
# or 
from . import forms 
# or 
from .forms import * 
# and from common: 
from ..common import forms as common_forms 

关于你提到的第二个问题:绝对 - 如果分离(例如干净的项目布局,可维护性,更详细的文件名)的好处是值得的麻烦(例如导入多个文件而不是一个文件)。没有硬性的规则,所以你必须计算折衷和决定。

+0

感谢所有这些! – Mathyou