【问题标题】:Where should the forms.py file be located?forms.py 文件应该放在哪里?
【发布时间】:2018-01-18 23:42:47
【问题描述】:

我现在开始编写我的第一个 Django 项目,我需要为一个应用程序创建我的 forms.py 文件。我已经看到一些教程将文件存储在项目的主文件夹下,有些则存储在 app 目录中。

  1. 如果我想制作仅适用于一个应用的表单,哪种布局最适合我?

  2. 是否适合制作多个文件来保存我的表单代码?

谢谢!

【问题讨论】:

  • 我会将它放在与应用程序本身相同的文件夹中。如果您有多个具有不同表单文件的应用程序,我会将它们保存在各自的应用程序文件夹中。
  • 好的,谢谢。所以我把它放在哪里真的不重要吗?
  • 我会将每个应用程序的表单文件保存在该应用程序的同一文件夹中。所以app_a 的表单文件将在app_a 目录中。

标签: python django forms project-structure project-structuring


【解决方案1】:

这是标准布局:

├── 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”的应用中。这是一个非常流行的约定。

这样您就可以轻松地将forms 导入views

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

关于您的第二个问题:绝对 - 如果分离的好处(如干净的项目布局、可维护性、更详细的文件名)值得麻烦(例如导入多个文件而不是一个文件)。没有硬性规定,因此您必须权衡利弊并做出决定。

【讨论】:

  • 感谢所有这些!
猜你喜欢
  • 1970-01-01
  • 2012-02-15
  • 2010-12-01
  • 2018-09-28
  • 2019-10-04
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
  • 2014-05-27
相关资源
最近更新 更多