自定义 Django 命令 - 帮助字符串在 shell 完成时不可见
custom django command - help string not visible in shell completion
以下是我在以下文件中编写的自定义命令
myapp/management/commands/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" 开头的命令时,它不会显示针对 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 的代码,那里提到的帮助文本与我上面得到的不匹配。知道在哪里可以定义上面自动完成中显示的帮助文本吗?
Django 的 bash 和 zsh 完成 运行
./manage.py
获取命令列表。此列表不显示帮助文本。这是有道理的,因为显示帮助文本需要导入所有命令模块。
Django 的 zsh completion 包含一些内置命令的默认帮助消息。
以下是我在以下文件中编写的自定义命令 myapp/management/commands/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" 开头的命令时,它不会显示针对 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 的代码,那里提到的帮助文本与我上面得到的不匹配。知道在哪里可以定义上面自动完成中显示的帮助文本吗?
Django 的 bash 和 zsh 完成 运行
./manage.py
获取命令列表。此列表不显示帮助文本。这是有道理的,因为显示帮助文本需要导入所有命令模块。
Django 的 zsh completion 包含一些内置命令的默认帮助消息。