custom django命令 - 在shell完成时看不到帮助字符串

时间:2017-03-04 18:20:45

标签: python django python-3.5 django-1.10

以下是我在以下文件中编写的自定义命令 MyApp的/管理/命令/ create_myadmin.py

from django.core.management.base import BaseCommand
from django.contrib.auth.models import User

class Command(BaseCommand):
    help = 'Creates a superuser that can view the admin page'

    def handle(self, *args, **options):
        try:
            user = User.objects.get(username='myadmin')
        except User.DoesNotExist:
            user = User.objects.create_superuser('myadmin', 'myadmin@mymail.com', 'myadmin')
            user.save()

在此之后,我将myapp添加到myproject / settings.py中的INSTALLED_APPS

我的问题是,当我使用自动完成功能并列出以"创建"开头的命令时,它不会显示针对create_myadmin的帮助字符串,如下所示

python3 manage.py create (pressed tab here)

createcachetable   -- creates table for SQL cache backend
createsuperuser    -- create a superuser
create_admin_user (help string missing??)

我希望在这里可以看到存储在帮助变量中的字符串。 有什么快速指示吗?

更新:我检查了django / core / management / commands / createcachetable.py的代码,这里提到的帮助文本与我上面的内容不匹配。知道在哪里可以定义上面自动完成中显示的帮助文本吗?

1 个答案:

答案 0 :(得分:0)

Django的bash和zsh完成运行

./manage.py 

获取命令列表。此列表不显示帮助文本。这是有道理的,因为显示帮助文本需要导入所有命令模块。

Django的zsh completion包含一些内置命令的默认帮助消息。