尝试将文件作为参数传递给自定义管理命令

时间:2014-08-23 22:25:32

标签: python linux django

这是我的代码:

from django.core.management.base import BaseCommand, CommandError
import sys, os, shutil

class Command(BaseCommand):

    def add_arguments(self, parser):
        parser.add_argument('--file', nargs='1', type=str)

    def handle(self, *args, **options):
        lists_file = options['file']

但是,当我尝试使用以下命令运行命令时

./manage.py: error: no such option: --file=test_lists.txt

我收到错误:

Usage: ./manage.py create_test_lists [options] 

./manage.py: error: no such option: --file

我已经验证test_lists.txt与manage.py位于同一目录中。另外,我命令的文件位于 my_app / management / commands / create_test_lists.py ,这似乎是正确的。关于我做错了什么的任何想法?

1 个答案:

答案 0 :(得分:1)

  • 如果它只是一个

  • ,则不需要麻烦
  • 使用file vs str

示例:

from django.core.management.base import BaseCommand, CommandError
import sys, os, shutil

class Command(BaseCommand):

    def add_arguments(self, parser):
        parser.add_argument('--file', type=file)

    def handle(self, *args, **options):
        lists_file = options['file']