2

我遇到了这个错误

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

我的网址文件包含

 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)
4

2 回答 2

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/您的登录页面的网址在哪里。

于 2012-09-20T00:07:56.810 回答
4

您的观点的最后一行是return login(不知道为什么您将退货包裹在括号中,这是不必要的)。但大概login是一个函数,你没有调用它。我希望你的意思是做return login()or return login(request)

于 2012-09-19T22:12:16.533 回答