我在~/<project_name>/commands/management/commands/check.py中重写了django check命令,看起来像这样:

from django.core.management.commands import check
class Command(check.Command):
    help = 'My Customized Version of the Original check Command'

    def handle(self, *args, **options):
        print('>>> Running customized check')

        options['deploy'] = True
        options['no_color'] = True

        super(Command, self).handle(*args, **options)

运行manage.py check 2>/tmp/check-output会触发该命令,但这里的问题是,尽管设置了‘NO_COLOR’,但输出仍然是彩色的,我必须以manage.py check --no-color 2>/tmp/check-output身份运行它

推荐答案

no_color不是传递给管理命令本身的参数,而是在构造BaseCommand时,因此您使用:

from django.core.management.commands import check


class Command(check.Command):
    help = 'My Customized Version of the Original check Command'

    def __init__(self, *args, **kwargs):
        kwargs['no_color'] = not kwargs.get('force_color', False)
        super().__init__(*args, **kwargs)

    def handle(self, *args, **options):
        print('>>> Running customized check')

        options['deploy'] = True

        super().handle(*args, **options)

一百零三:从PEP-3135 [pep]开始,如果第一个参数是定义方法的类,第二个参数是函数的第一个参数(通常是self),则不需要用参数调用super(…).

Django相关问答推荐

DRF中是否有有效的更新有序数据的算法?

django命令中的no_color不起作用

如何在 Django 中设置与 Session 相关的字段

DJANGO 获得模型中发现的第一、第二和第三大价值

如何在没有此前缀的情况下修复此 django 路径?

在 python 视图中检测移动浏览器

什么时候在 django rest 框架序列化程序中调用创建和更新?

在 Django 过滤器语句中,__exact 和等号 (=) 有什么区别?

测试 Django ModelForm 是否有实例

UnicodeDecodeError:asciicodec can't decode byte 0xe0 in position 0: ordinal not in range(128)

django npm 和 node 包架构

模型 Django 中的 ID 字段

get_or_create() 是否必须立即保存?

如何在该元素中的所有应用程序之间共享元素范围的模板标签

如何将本地文件分配给 Django 中的 FileField?

过滤查询参数

Django 将多个模型传递给一个模板

Django:在模块中实现 status字段的最佳方式

如何更改 django 模板中布尔值的打印方式?

ValueError: 无法解析相关模型 u'app.model'