Я хотел бы изменить мою опцию помощи в проекте, который я создал. я поставил argparse в manage.py файл, как этотDjango - где поставить команду argparse для изменения опции -h?
parser = argparse.ArgumentParser(
description="Some desc",
formatter_class=argparse.RawTextHelpFormatter
)
args = parser.parse_args()
print(args)
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Reporter.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
, но когда я бегу питона manage.py -h работает правильно (помощь показывает), но когда я бегу python manage.py runserver
, я получил: manage.py: error: unrecognized arguments: runserver
Как решите эту проблему? Я действительно не знаю, как изменить параметр -h.
Где я могу поместить код argparse, чтобы получить помощь в этом проекте django? Я знаю, что я могу использовать собственную команду, но это очень важно для меня, чтобы получить помощь после того, как я сделать python manage.py -h
EDIT:
После помощи от комментариев, я создал:
#!/usr/bin/env python
def help_parser():
import argparse
parser = argparse.ArgumentParser("Some desc",
formatter_class=argparse.RawTextHelpFormatter
)
args = parser.parse_args()
print(args[0])
def main():
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Reporter.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
if __name__ == "__main__":
import sys
if sys.argv[1] == '-h':
help_parser()
else:
main()
Я понимаю. Но что, если кто-то не установил дополнительные модули, которые я включил в свое приложение. Затем, когда manage.py custom -h не отображает справку, а список ошибок. Как я могу показать помощь, даже если появились ошибки? – allocer
Я начинаю думать, что вы действительно пытаетесь создать приложение Django CLI, а не веб-приложение django. – e4c5
Я знаю, что у меня есть требования. Txt. но история этого приложения сложнее.Это приложение для изучения, и учитель сказал, что я должен показать помощь, даже если появится список ошибок. Я знаю, что это глупо, но я хочу быть уверенным, что это невозможно. Ну, лучший способ - сначала установить все модули из требований, а затем вызвать команду специальной справки? – allocer