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

时间:2021-08-01 23:28:20

Here is my code:

这是我的代码:

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']

However, when I try to run the command with:

但是,当我尝试运行命令时:

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

I get an error:

我得到一个错误:

Usage: ./manage.py create_test_lists [options] 

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

I have verified that test_lists.txt exists in the same directory as manage.py. In addition the file for my command is located at my_app/management/commands/create_test_lists.py which seems right. Any ideas as to what I'm doing wrong?

我已经验证了test_list。txt存在于与manage.py相同的目录中。此外,我的命令的文件位于my_app/management/commands/create_test_lists。py这似乎是正确的。你知道我做错了什么吗?

1 个解决方案

#1


1  

  • Don't need nargs if it's just one

    如果只有一只,就不需要毒枭了

  • Use file vs str

    使用文件和str

Example:

例子:

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']

#1


1  

  • Don't need nargs if it's just one

    如果只有一只,就不需要毒枭了

  • Use file vs str

    使用文件和str

Example:

例子:

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']