属性错误'function'对象没有属性'has_header'

时间:2012-09-19 21:38:17

标签: python django

我遇到了这个错误

  

'function'对象没有属性'has_header'

my url file contans

 url(r'^HighDefs/$', list_HighDefs),

我有一个名为

的视图
  

list_HighDefs

在视图文件中

。我不知道什么是错的。

视图包含

def list_HighDefs(request):
user_logger = Logger()
user_logger.log_stack()


if user_object:
    email = user_object.email
    uname = user_object.first_name+' '+user_object.last_name

    try:
        row = allapps_models.highdef.objects.filter(user_email=email, show_status=1)


    except Exception:

         return error_page(request)

    highdefs = []

    for m in row:
        order_product = int(m.m_id)
        state = m.state

        try:
            category = checkout_models.state.objects.get(pk=product).premature.category.all()
            category = category[0].pk
        except:

            category = 0


        if int(category) == 2:
            if state != 's':
                highdefs.append(m)


    return render_to_response('main/HighDefs.html',{'request': request, 'highdefs': highdefs, 'uname' :uname, 'email': email}, context_instance=RequestContext(request))

else:
    return(login)

2 个答案:

答案 0 :(得分:5)

您的观点必须返回HttpResponse个对象。

它为if语句的一个分支执行此操作:

return render_to_response(...)

但不在else分支。

return(login)

如果login是一个返回HttpResponse对象的视图函数,那么您可以将return语句更改为

return login(request)

但是,我怀疑您想要将用户重定向到您的登录页面。在这种情况下,请将您的代码更改为:

from django.http import HttpResponseRedirect
return HttpResponseRedirect('/login/')

其中/login/是您登录页面的网址。

答案 1 :(得分:4)

你的观点的最后一行是return login(不知道你为什么把你的回报包装在括号中,这是不必要的)。但大概login是一个函数,你不是在调用它。我希望您的意思是return login()return login(request)