【问题标题】:Django call_command() parameter type issueDjango call_command() 参数类型问题
【发布时间】:2017-07-27 09:36:00
【问题描述】:

当我尝试使用 id 作为字符串调用我的自定义 django 命令时,它可以正常工作。

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

知道为什么会这样吗?

【问题讨论】:

  • call_command之前尝试print str(product.id)
  • 它给了我这个:23
  • 令我困惑的是堆栈跟踪的简短性。这意味着 __init__.py 已被直接调用。

标签: python django command


【解决方案1】:

此函数在测试中,添加 @override_settings(DEBUG=True) 有帮助。该命令正在调用一个任务,所以我必须确保它没有触发 task.delay

仍然奇怪,它只是将字符串作为参数工作......

【讨论】:

  • 在这种情况下,您的问题错过了重现问题的大部分部分。
  • 另外,您不应该使用答案来添加信息/说明 - 使用 cmets 和/或编辑您的问题。
猜你喜欢
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 2015-11-02
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
相关资源
最近更新 更多