2

我有一个initial_data灯具,我想每次加载,除了用于生产。我已经有了用于生产和非生产部署的不同设置文件。针对不同阶段有不同的initial_data灯具(测试诉生产)

有关如何完成此任务的任何建议?

澄清:我不想测试灯具。基本上,我只需要根据某种设置更改来加载灯具。我将深入研究Django代码,看看能否找到一个完美的方法来实现这一点。

回答

1

实际上,你可以为每个测试设置不同的测试装置,如果你想: http://docs.djangoproject.com/en/dev/topics/testing/#topics-testing-fixtures

如果你只想要加载的灯具在同一时间,你也可以编写自定义的TestRunner,将允许你这样做设置在开始时:

docs.djangoproject.com/en/dev/topics/testing/#using-different-testing-frameworks

这两项的仍将从生产夹具加载数据,因为这是用syncdb完成,但你可以覆盖数据,甚至全部删除。如果您要将大量数据加载到生产产品中,这可能不是最佳选择。如果是这种情况,我建议你添加一个像load_production_data这样的自定义命令,它允许你通过命令行快速简单地完成它。

+0

对不起@hazmat。我最初并不十分清楚。不过谢谢你的回答! – 2011-01-19 04:36:56

0

最简单的方法是使用manage.py testserver [fixture ...]

如果是分期(而不是开发)部署,不过,你可能不希望使用Django的内置服务器。在这种情况下,快速(如果哈希)的做法是让应用程序中的灯具(例如,称为“未部署”)仅安装在非生产设置中。

相关问题