2017-03-07 72 views
1

當我嘗試使用id作爲字符串調用我的自定義django命令時,它的工作原理沒有問題。Django call_command()參數類型問題

call_command(COMMAND, '-i', '23') 

但是當我嘗試將一個對象的id轉換爲一個字符串時,它將無法工作。

call_command(COMMAND, '-i', str(product.id)) 

它成爲了這個錯誤:

Traceback (most recent call last): 
    File "/usr/local/lib/python3.6/site-packages/kombu/utils/__init__.py", line 423, in __call__ 
    return self.__value__ 
AttributeError: 'ChannelPromise' object has no attribute '__value__' 

任何想法,爲什麼發生這種情況?

+0

嘗試'打印STR(產品.id)''call_command'之前' – ZdaR

+0

它給了我這個:23 –

+1

讓我感到困惑的是堆棧跟蹤的短小。它意味着'__init __。py'已被直接調用。 –

回答

0

這個函數在測試中,增加了@override_settings(DEBUG = True)幫助。該命令調用一個任務,所以我必須確信它不會觸發task.delay

不過奇怪的是,它只是把字符串作爲參數的工作...

+1

在這種情況下,您的問題錯過了大部分重現問題的部分。 –

+0

此外,您不應該使用答案來添加信息/說明 - 而是使用評論和/或編輯您的問題。 –