Администратор Django, как вызвать функцию только один раз? - PullRequest
0 голосов
/ 24 января 2019

У меня есть модель, назовем ее A. Я зарегистрировал эту модель у администратора, теперь эта модель должна иметь некоторые предварительно заполненные данные, которые предоставляются сторонним вызовом rest, единственное действие, которое может сделать администратор, - это включить или отключить что-то.

Теперь мне нужно, чтобы функция-заполнитель вызывалась только один раз, поскольку изначально в таблице A не будет никаких данных.

Как мне этого добиться?

1 Ответ

0 голосов
/ 24 января 2019

TL; DR: используйте команду управления и задокументируйте факт, что она должна быть вызвана после установки.

Более длинный ответ:

Вы можете использовать метод app.ready() , чтобы проверить, есть ли у вас какая-либо запись для вашей модели и, если нет, вызвать функцию, , но

  1. вызов API отдыха может легко завершиться неудачей (проблема с сетью или что-то в этом роде), что вам здесь не нужно,

  2. это также может занять некоторое время, и вы не хотите слишком сильно замедлять запуск процесса и

  3. у вас может быть несколько одновременных вызовов на app.ready (обычно при запуске вашего переднего сервера в производственной настройке), и вы определенно не хотите, чтобы здесь были условия гонки.

...