【发布时间】:2019-01-24 07:52:16
【问题描述】:
我有一个模型,我们把它命名为 A。我已经向管理员注册了这个模型,现在这个模型需要有一些预填充的数据,这些数据由第三方 rest 调用提供,管理员唯一可以做的就是启用或禁用某些东西。
现在我只需要调用一次填充函数,因为最初表 A 不会有任何数据。
我怎样才能做到这一点?
【问题讨论】:
标签: django python-3.x django-models django-admin
我有一个模型,我们把它命名为 A。我已经向管理员注册了这个模型,现在这个模型需要有一些预填充的数据,这些数据由第三方 rest 调用提供,管理员唯一可以做的就是启用或禁用某些东西。
现在我只需要调用一次填充函数,因为最初表 A 不会有任何数据。
我怎样才能做到这一点?
【问题讨论】:
标签: django python-3.x django-models django-admin
TL;DR:使用管理命令并记录安装后必须调用它的事实。
更长的答案:
您可以 use the app.ready() method 测试您的模型是否有任何记录,如果没有调用您的函数,但是
rest API 调用很容易失败(网络问题或其他),这不是您希望在这里发生的事情,
这也可能需要一些时间,而且您不想过分减慢进程启动速度,并且
您可能对app.ready 有多个并发调用(通常在生产设置中启动前端服务器时),并且您当然不希望这里出现竞争条件。
【讨论】: