1

像许多其他人一样,我一直在通过构建测试应用程序来学习 django 上的 Web 开发。我已经建立了基本模型。我已经使用夹具填充了一些表,其中包含进一步测试所需的绝对最小数据。

现在对于不同的表,我想通过一个自定义管理命令创建数据元组,该命令采用所需的参数。--save如果这按预期工作,我将通过添加选项将创建的数据保存到数据库中。

命令的语法是这样的

create_raw_data owner_id temperature [--save]

whereowner_id是必需的,temperature(在 C 中)是可选的。在该Handle方法中,我使用工厂男孩raw_data用给定的参数等创建。

我确实遇到了一些问题,但是在 SO、google、django docs 等上搜索,我的命令运行良好。

除非我输入负温度...

然后我收到以下错误

Usage: C:\test\manage.py create_raw_data [options] 

Creates a RawData object. Usage:  create_raw_data owner_id temperature [--save]

C:\test\manage.py: error: no such option: -5

我用于解析 args 的代码是这样的

for index, item in enumerate(args):
    if index == 0:
        owner_id = int(item)
    else index == 1:
        temp = int(item)

我将 aprint(args)作为第一行放在里面Handle,但似乎控件甚至没有到达这里。

我不确定是什么问题...请帮助...

非常感谢

4

1 回答 1

1

解决了问题,因此为可能遇到此问题的其他人提供答案。

问题在于 optparse 的 parse_args 方法。我在很多地方读到过,虽然 optparse 已被弃用,而是推荐使用 argparse,但 django 建议使用 optparse,因为这就是它所使用的。长话短说,链接上的链接提出了一些替代方案,create_raw_data 1 -- -5并按预期使用了作品。所以我确实得到了解决方法。谢谢。

于 2012-11-08T04:53:40.910 回答