2017-03-07 48 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

此外,您不应该使用答案来添加信息/说明 - 而是使用评论和/或编辑您的问题。 –