gpt4 book ai didi

django - 如何执行项目范围的自定义 django-admin 命令?

转载 作者:行者123 更新时间:2023-12-03 14:52:41 25 4
gpt4 key购买 nike

在 Django 中,很容易写成 custom management commands对于 django-admin.py/manager.py。

但是,这些命令驻留在应用程序级别,而不是整个项目级别。您将实现放入 <project_dir>/<app_dir>/management/commands目录,它们会被自动发现。

我有许多项目级别的命令,不依赖于项目中的任何一个应用程序。我可以将它们塞进其中一个应用程序中,但是有没有办法在 Django 中实现项目级管理命令?

最佳答案

您可以拥有名为 core 的应用程序或类似的,其中包含与任何应用程序无关的内容。这些可以是管理命令、模板标签、模型,也可能是其他模块,如表单、装饰器、中间件。您可以将项目目录本身用作“核心”应用程序。

以下是我倾向于构建我的项目的方式:

project_name
not_reusable_app1
not_reusable_app2
templatetages
tempates
utils
models.py
settings.py
management
middleware.py
forms.py
processors.py
__init__.py
parts
reusable-app-1
reusable_app_1
setup.py
reusable-app-2
reurable-app-3
gereric-python-lib
django
setup.py

我的 INSTALLED_APPS通常看起来像这样:
INSTALLED_APPS = (
...
'project_name',
'project_name.not_reusable_app1',
'reusable_app1',
...
)

我没有对与其他 python 包比较的 django 应用程序进行任何特殊处理。例如,我不会将它们放在 apps 下。或类似的目录。

很明显,我的不可重用应用程序是项目的一部分。项目下不可重用的应用程序通常使用项目中的各种实用程序,例如 project_name.utils.decorators.some_kind_of_deco .

如果您不喜欢将项目用作应用程序,就像我提到的,您可以将所有内容移至 project_name.core .

关于django - 如何执行项目范围的自定义 django-admin 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5210690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com