您可以将其放置在任何位置,但通常会在设置文件(甚至是URLconf)中看到这种链接。您可以在任何地方发出信号的地方也可能合适。这段代码实际上应该稍微聪明一些- 通常文件导入不止一次,而且您无能为力,因此,如果尝试多次运行这样的代码,可能会遇到问题。
对于每个python进程,该代码至少需要执行一次。
是的,您需要手动更改数据库。Syncdb 可能 不会捕获更改(我没有仔细研究代码),但是可能在某些地方可以放置代码。
您似乎已经知道这是一件可怕的事情,绝不应该在真正的代码中完成,因此我不会为这一点感到lab惜。除了在将来的Django版本中可能无法使用的代码之外,执行此类操作是一种在代码中生成真正难以发现的错误的绝妙方法。
另外,它不适用于您应该使用的South。