【发布时间】:2014-09-15 09:44:43
【问题描述】:
这是我想要实现的一个示例。期望的效果是,当且仅当定义了其相关设置存在时,特定功能才应该生效。否则,该功能应该被禁用。
settings.py:
SOME_VARIABLE = 'some-string'
ANOTHER_VARIABLE = 'another-string'
random_code_file.py:
from django.conf import settings
if settings.is_defined('ANOTHER_VARIABLE'): # <- I need this.
do_something(settings.ANOTHER_VARIABLE)
else:
do_something_completely_different()
在上面的代码中,我错过了我应该做的任何事情,而不是settings.is_defined。
如果这完全是解决问题的错误方法,我也很乐意听到其他方法。所需的效果是自动激活的功能,只有在相关设置存在时才会生效。我宁愿避免一些特殊的 settings.ACTIVE_FEATURES 设置或特殊值(例如空白字符串或 None),以便该功能评估它是否生效。
我最不想做的就是使用 try/except。我宁愿选择一个空值来表示该功能的排除。 - 但是如果尝试/排除它确实是首选方法,如果提供了详尽的来源或解释,我会将答案标记为正确。事实上,这适用于任何答案。
简而言之,我需要正确的方法来检查 Django 中是否定义了设置变量。
提前致谢!
【问题讨论】:
-
为什么这是 Django 特有的?我相信有一个内置的 Python 方法可以让你这样做
-
我认为“设置”对象是 Django 独有的。我不认为你可以教育我如何在 Python 中做到这一点? :)
标签: python django django-settings