错误RuntimeError:populate()不是可重入的意思是什么

时间:2018-07-05 04:58:18

标签: django

具体来说,我的django应用程序文件夹中有一个独立的脚本,该脚本正在访问模型,根据django docs here,您必须进行以下配置:

import os
import django

os.environ['DJANGO_SETTINGS_MODULE'] = settings_file
django.setup()

但是当我运行服务器时出现错误

RuntimeError: populate() isn't reentrant

在与我拥有models.py文件的目录相同的目录中,我有一个utils.py文件,这是我的独立脚本,并且我的import语句如下:

import os
import django

os.environ['DJANGO_SETTINGS_MODULE'] = 'sdn.settings'
if __name__ == '__main__':
    django.setup()

import requests
from .models import Location, BandwidthLogs, InterfaceLogs, Summary

我收到无法导入模型的错误。

1 个答案:

答案 0 :(得分:1)

您可能试图通过简单地导入django.setup()多次。将通话包裹在__main__块内,即:

if __name__ == '__main__':
    django.setup()

话虽如此,我会写一个management command而不是一个独立的脚本,因为它会为您设置环境。