0

我正在尝试通过在 settings.py 中指定特定设置,将我的 views.py 中定义的函数传递给我的项目使用的第三方 django 应用程序,如下所示:

ENDLESS_PAGINATION_PAGE_LIST_CALLABLE = myapp.views.get_pagination_pages

我得到了错误NameError: name 'lend_borrow' is not defined

然后我尝试了

import myapp
ENDLESS_PAGINATION_PAGE_LIST_CALLABLE = myapp.views.get_pagination_pages

和另一个错误AttributeError: 'module' object has no attribute 'views'

我还尝试将路径传递给可调用对象:

ENDLESS_PAGINATION_PAGE_LIST_CALLABLE = 'myapp.views.get_pagination_pages'

但第三方应用似乎并不喜欢它。我有Caught TypeError while rendering: 'str' object is not callable

这里使用的第三方应用是django 无尽的分页。它包含在 INSTALLED_APPS 中。

如何通过 settings.py 将我的应用程序中定义的可调用对象传递给第三方应用程序?

4

1 回答 1

2

显然,应用程序的期望是可调用的,而不是字符串。所以,如果它有效,这应该有效:

from myapp.views import get_pagination_pages
ENDLESS_PAGINATION_PAGE_LIST_CALLABLE = get_pagination_pages

但是,您应该知道它settings是在任何其他文件之前加载的,并且如果您尝试加载从模型导入的视图文件并且反过来需要加载设置,则可能是循环导入,这可能是最好的方法避免它是通过将函数放在一个文件中,而不是import modelsutils.py或类似的东西。

如果函数足够简单,我会把它放在它settings本身,或者一个与之平行的文件中。

于 2012-01-24T03:06:43.370 回答