允许多个应用重写django中的同一管理命令

django-mcmo的Python项目详细描述


版权所有2014-2017 Thomas Khyn

MCMO代表“管理命令多重覆盖”。这个django应用程序允许 多个应用程序重写同一管理命令而不逐出任何应用程序。

支持django 1.8到1.11以及匹配的python 2和3版本。

安装

尽可能简单,使用pip:

pip install django-mcmo

用法

manage.py文件中,替换行:

from django.core import management

签署人:

from mcmo import management

现在可以使用同时为 django.core management命令。两个命令都将被调用。

例如,如果使用djingadjango-extra_keywords,则 两者都重写django的makemessagesmanagement命令,这两个命令都来自 随后将调用这两个应用程序。

将调用的第一个命令将是相对于 应用程序位于INSTALLED_APPS中的最新位置。

替代用法

在manage.py中自动生成(例如,如果使用 buildout使用djangorecipebookdjangorecipe),只需确保 声明:

import mcmo

在调用django.management.execute_from_command_line之前执行。

导入包会修补django.core.management模块,该模块 然后为多个覆盖支持启用功能。

限制

相同的名称重写都应派生自相同的命令类,或 从django的基本命令类(AppCommandLabelCommand)。

django-mcmo将发出警告(但执行将继续),以防 子类化不一致。例如,如果命令cmd在^{tt11}中$ 继承自AppCommand,而app2中的命令cmd继承自 LabelCommand。实际上,因为只有一个命令可能在 情况下,获得的结果可能不一致,因为它将取决于 应用程序在INSTALLED_APPS中的相对位置或引发异常 关于参数存在、不存在或类型。

实际上,只有当两个第三方应用程序 重写django核心管理命令。因此,它们将从 相同的命令基类,99.9%的情况下不会引起问题。

django-mcmo如果相同的选项是 在同一命令中显式添加了两个具有命令类的不同应用程序 不是彼此的子类。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jframe为什么JAVA paint()方法不起作用?   java Guice:将ContainerRequestContext注入拦截器   java如何优雅地关闭Spring JMS MessageListenerAdapter   java如何在Spring中设置快照隔离级别   Java中的安卓平台独立信任存储路径   java无法在eclipse中运行hello world程序   java Sinch空指针问题   使用Java将JSON流式传输到BigQuery   java从“大数据”中选择什么Swing控件?   java通过对象字段过滤/排序集合?   java将数据从活动传递到另一个活动中的片段   java访问打包在jar文件中的文档   Java获取事件的大小。getDragboard()。getFiles()。流()。映射(文件::长度)。toString());   java Android libgdx:启动程序图标按下后,启动屏幕不会立即显示   java如何在Google App Engine灵活环境中配置oracle jdk   java有没有办法减少这些行?   Java:客户端socket不读取第二行,在终止符行之后保持打开状态   java以编程方式获取api 29上的所有APK文件   java ActionBar按钮不显示