运行下图中显示的命令时出现错误
python manage.py shell <processing.py 66
错误是
usage: manage.py shell [-h] [--version] [-v {0,1,2,3}] [--settings SETTINGS]
[--pythonpath PYTHONPATH] [--traceback] [--no-color]
[--plain] [--no-startup] [-i {ipython,bpython,python}]
[-c COMMAND]
我认为这不是使用shell时传递参数的正确方法。 我不能直接写
python processing.py
因为我使用数据库过滤,所以我必须使用shell。
这是我的processing.py
import os
import sys
from webapp.models import status
dirname = sys.argv[1]
print(os.getcwd())
sta = status.objects.filter(status_id=66)[0]
sta.status = True
sta.save()
print(sta.status)
提前致谢
答案 0 :(得分:1)
看起来您想要创建自定义管理命令,如评论中所述。下面是一个示例,它将打印一个传递的命令行参数,该参数应放置在类似myapp/management/commands/say.py
的位置的应用程序中,并使用python manage.py say --printme StackOverFlow
调用:
from django.core.management.base import BaseCommand
class Command(BaseCommand):
"""
This command will print a command line argument.
"""
help = 'This command will import locations from a CSV file into the hivapp Locations model.'
def add_arguments(self, parser):
parser.add_argument(
'--printme',
action='store',
dest='printme',
default="Hello world!",
help='''The string to print.'''
)
def handle(self, *args, **options):
print(options['printme'])
您可以传递一个文件名来迭代并运行一个命令列表,尽管将命令合并到命令中会更安全。祝你好运!