0

我正在编写的 Django 应用程序有问题。我有一个视图 *project_detail*,它应该仅限于作为该项目的项目负责人的用户。我已经使用在单独的文件helpers.py中定义的装饰器解决了这个问题。如果发生错误,则调用另一个视图错误。这是两个文件views.pyhelpers.py

#views.py#
from projectmanagement.helpers import is_projectleader    


@is_projectleader
def project_detail(request,id):
...

def error(request, errormessage)
....
    return render_to_response(...)

--------------------------------------
#helpers.py#
def is_projectleader():
....
if not request.user in project.projectleaders:
    return error(request,errormessage="You are not a projectleader")
....

现在我收到一个错误未定义的错误,但如果我添加

from projectmanagement.views import error

我收到一个错误,我无法导入error。你有什么建议吗?

4

3 回答 3

1

导入模块本身,并引用该模块的属性。

于 2012-07-18T08:17:38.367 回答
1

首先 - 请写下整个堆栈跟踪和错误消息。第二 - 如果您将所有内容都放在一个文件中(例如views.py)会发生什么。这似乎是循环依赖——从views.py你正在导入helpers.py;从 helpers.py 你正在导入views.py。

于 2012-07-18T08:22:47.917 回答
1

您不能同时从另一个模块导入一个模块,反之亦然。将error函数的定义移动到helpers.py或为像这样的视图创建一个新模块。

于 2012-07-18T08:50:55.443 回答