django导入视图

时间:2012-07-18 08:13:18

标签: django import views

我在写一个Django应用程序时遇到问题。我有一个视图* project_detail *,它应该仅限于该项目的项目负责人。我用一个独立的文件 helpers.py 中定义的装饰器解决了这个问题。如果发生错误,则会调用另一个视图错误。以下是两个文件 views.py helpers.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

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

3 个答案:

答案 0 :(得分:1)

导入模块本身,并参考该模块的属性。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

您无法同时从另一个模块导入一个模块,反之亦然。将error函数的定义移至helpers.py或为此类视图创建新模块。