我在 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”
在 View 中定义装饰器是否正确,如果不正确,我应该把它放在哪里,现在如何解决这个问题。
问候
最佳答案
装饰器是一个像其他函数一样的函数,因此您可以在任何地方定义它,问题不是装饰器而是导入本身:导入循环、不正确的路径或未设置等。
1) 您是否成功将用户/views.py 中的任何内容导入到 profile/views.py 中?
2)你能粘贴你的项目结构吗? ( # ls -R)
关于python - 从另一个 View 调用装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34285438/