2016-12-30 49 views
1

我使用Django 1.10.4和Python 3.52。當我嘗試通過運行Django的命令,我收到以下錯誤:Django的命令拋出類型錯誤:處理()得到了一個意想不到的關鍵字參數

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "path_to_envs/envs/env_name/lib/python3.5/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "path_to_envs/envs/env_name/lib/python3.5/site-packages/django/core/management/__init__.py", line 359, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "path_to_envs/envs/env_name/lib/python3.5/site-packages/django/core/management/base.py", line 294, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "path_to_envs/envs/env_name/lib/python3.5/site-packages/django/core/management/base.py", line 345, in execute 
    output = self.handle(*args, **options) 
TypeError: handle() got an unexpected keyword argument 'verbosity' 

我可以運行本地Django的服務器,並與後臺管理頁面交互。包含命令的應用程序是我settings.py文件。

下面是Django的命令的內容:

from django.core.management import BaseCommand 
from my_module import MyClass 


class Command(BaseCommand): 
    def handle(self): 
     my_class = MyClass() 
     my_class.my_method() 

在錯誤的時候,options字典包含{'verbosity': 1, 'no_color': False, 'settings': None, 'pythonpath': None, 'traceback': False}。根據字典no_colortraceback的隨機排序,和其他人會拋出同樣的TypeError。經過一天的搜索,我仍然無法弄清楚問題所在。有沒有人見過這個?

+1

不應該告訴你my_command的代碼? –

+0

@DanielRoseman我道歉。該命令非常簡單,我沒有打擾添加它。這是現在的問題。 – AdamY

回答

5

經過大量的谷歌搜索和拉我的頭髮的,這個問題的參數數量不正確,以handle()

此:

def handle(self): 

應該是:

def handle(self, *args, **options): 
-1

如果你的命令,需要的不是爭論,嘗試subclass of BaseCommand

NoArgsCommand.handle_noargs(**options) 
相關問題