Django:检查设置变量是否已设置
这里有一个我想要实现的例子。我的目标是某个特性只有在相关设置存在并被定义时才会生效。否则,这个特性就应该被禁用。
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。我更倾向于用一个空值来表示这个特性被排除在外。不过,如果使用 try/except 确实是更好的方法,如果能提供详细的来源或解释,我会把这个答案标记为正确。其实对任何答案都是如此。
总之,我需要在 Django 中检查一个设置变量是否被定义的正确方法。
提前谢谢你!
1 个回答
94
看起来你做得对:导入设置对象并进行检查。
你可以试试用:
if hasattr(settings, 'ANOTHER_VARIABLE'):
来代替:
if settings.is_defined('ANOTHER_VARIABLE'):
我找到了一些文档,希望这能帮到你。