我正在为Django做扩展,我想让用户在设置文件中指出一个视图。
但是如果用户在设置文件中包含对视图的调用作为常量,则会产生循环依赖关系,因为视图使用的django.http使用来自设置的SECRET_KEY:
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
有什么方法可以解决这个问题?感谢。
答案 0 :(得分:4)
在您的设置中将视图的路径定义为字符串:
MY_VIEW = 'myapp.views.SomeView'
然后将其导入您需要的位置(不在设置中):
from django.utils.module_loading import import_by_path
my_view = import_by_path(settings.MY_VIEW)
然后,您可以像使用时一样使用my_view:
from myapp.views import SomeView