【发布时间】:2016-03-21 00:29:02
【问题描述】:
我在 users/views.py 中定义了一个装饰器,我想在 django 的 profile/views.py 中使用它
users/views.py 中的装饰器函数
def is_active_consult(f):
def wrap(request, *args, **kwargs):
try:
usrid = request.session['id']
user = CustomUser.objects.get(id=usrid)
usercons = Userconsultation.objects.get(doctor=user.doctor,status='InProgress')
except ObjectDoesNotExist:
usercons = ''
if usercons:
url = '/encounter_notes/'+str(usercons.userconsultationid)
return HttpResponseRedirect(url)
else:
return f(request, *args, **kwargs)
return wrap
当我尝试导入时
from users.views import is_active_consult
它给出了一个导入错误“无法导入名称 is_active_consult”
在视图中定义装饰器是否正确,如果不是,我应该把它放在哪里,现在我该如何解决这个问题。
问候
【问题讨论】:
-
你能发布你得到的错误回溯吗?可能是您在那里有某种导入循环,但这只是一个非常疯狂的猜测。但除此之外,它应该是完全有效的。无论如何,就我个人而言,我更喜欢在我的 Django 应用程序中的一个名为
decorators的模块中定义装饰器,但这只是个人喜好问题。 -
你到底想在哪里导入这个?
-
我最好的猜测是你的包结构设置不正确......
-
您知道您可以编辑您的问题并将整个回溯发布到那里,对吗?您放入评论的那段代码根本没有帮助,因为其中似乎没有任何导入。如果没有得到关于究竟出了什么问题的更详细信息,我看不出任何人可以帮助你。
标签: python django python-decorators