是否可以从设置中调用视图?

时间:2014-06-17 11:52:32

标签: django django-views circular-dependency

我正在为Django做扩展,我想让用户在设置文件中指出一个视图。

但是如果用户在设置文件中包含对视图的调用作为常量,则会产生循环依赖关系,因为视图使用的django.http使用来自设置的SECRET_KEY:

django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

有什么方法可以解决这个问题?感谢。

1 个答案:

答案 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
  • import_by_path自1.6以来可用