【发布时间】:2022-01-10 03:15:01
【问题描述】:
我有一个用 Django 制作的项目。我仅出于登录目的添加了社交身份验证。我希望选定的电子邮件仅用于登录网站。我使用social-auth-app-django 库进行社交身份验证,并在settings.py 文件中添加了一个变量SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_EMAILS,其中包含允许登录的所有电子邮件的列表。
我的项目目录如下所示:
project_parent/
----project/
--------settings.py
--------wsgi.py
--------asgi.py
--------urls.py
----app/
--------models.py
--------views.py
--------urls.py
--------admin.py
----db.sqlite3
----manage.py
----config.json
这里是配置文件:
{
"OAUTH2": {
"WHITELISTED_EMAILS": [
"xyz@gmail.com",
"abc@gmail.com",
"efg@gmail.com",
"lmn@gmail.com"
]
}
}
在settings.py 文件中,我已经像这样加载了配置文件:
config = open('./config.json',)
data = json.load(config)
SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_EMAILS = data['OAUTH2']['WHITELISTED_EMAILS']
我已经制作了一个网页,该网页采用新的邮件 ID(需要添加到配置文件)并将该特定邮件 ID(或邮件 ID 列表)附加到 config.json 文件。但是现在问题出现了,新添加的邮件并没有直接反映到settings.py文件中定义的变量。为此,我需要重新启动代码以获取最新的配置文件。每次添加邮件id都需要重启代码。
我想在我的app 文件夹中创建一个数据库表,并通过从app 文件夹中导入model 来将该表加载到settings.py 中。但是在导入时,终端会引发错误,因为它说app is still not loaded,所以我不能在我的应用程序中使用模型。
有没有一种方法可以直接加载数据库表而无需从app 文件夹中导入models.py 文件?或者如果可以实时加载config.json 文件,这样我就不必重新启动代码
【问题讨论】:
标签: django social-auth-app-django