当我运行下图所示的命令时出现错误
python manage.py shell <processing.py 66
Run Code Online (Sandbox Code Playgroud)
错误是
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]
Run Code Online (Sandbox Code Playgroud)
我认为这不是使用 shell 时传递参数的正确方法。我不能直接写
python processing.py
Run Code Online (Sandbox Code Playgroud)
因为我正在使用数据库过滤,所以我必须使用 shell。
这是我的处理.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)
Run Code Online (Sandbox Code Playgroud)
提前致谢
看起来您想创建一个自定义管理命令,如评论中所述。下面是一个示例,它将打印传递的命令行参数,该参数应放置在应用程序中的类似位置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'])
Run Code Online (Sandbox Code Playgroud)
您可以传递一个文件名来迭代要运行的命令列表,尽管将这些命令合并到您的命令中会更安全。祝你好运!
| 归档时间: |
|
| 查看次数: |
2693 次 |
| 最近记录: |