如何在models.py中引用django设置变量?

cod*_*Joe 103 django django-models django-settings

这是一个非常初学的问题.但我很难过.如何在model.py中引用django设置变量?

NameError:名称'PRIVATE_DIR'未定义也尝试了很多其他的东西,包括 settings.PRIVATE_DIR

这样做的正确方法是什么?

--------- ------------- settings.py

NameError: name 'PRIVATE_DIR' is not defined
Run Code Online (Sandbox Code Playgroud)

--------- model.py ---------------

PRIVATE_DIR = '/home/me/django_projects/myproject/storage_dir'
Run Code Online (Sandbox Code Playgroud)

jua*_*ith 232

试试这个:from django.conf import settings然后 settings.VARIABLE访问该变量.

  • 谢谢它,如果我用`settings.VAR`引用它 (22认同)
  • 相关的东西:如果由于在多个环境中部署的项目而有几个`settings_something.py`实例,请不要尝试从`app.settings`导入.其他文件中的覆盖变量不会生效.始终使用此答案中提到的导入.我花了几个小时才意识到我的项目中发生了什么. (13认同)
  • VAR 必须是大写,否则不起作用 (2认同)

Hel*_*ton 83

from django.conf import settings

PRIVATE_DIR = getattr(settings, "PRIVATE_DIR", None)
Run Code Online (Sandbox Code Playgroud)

如果它说None,你将设置默认值,因为变量未在设置中定义.


ahm*_*ira 5

有一个EMAIL_HOST_USERsettings.py文件导入并使用它发送电子邮件的示例:

from django.conf import settings
from django.core.mail import send_mail

def post_share(request, post_id): 
   # ...
   send_mail(subject, message, settings.EMAIL_HOST_USER, [
                      settings.EMAIL_HOST_USER, 'ahmnouira@gmail.com'])
Run Code Online (Sandbox Code Playgroud)