django 模版渲染 lambda 问题 求指导
urlpatterns=patterns('django.views.generic',url(r'^$','simple.direct_to_template',kwa...
urlpatterns = patterns('django.views.generic',
url(r'^$', 'simple.direct_to_template',
kwargs={
'template': 'index.html',
'extra_context': {'item_list': lambda: Item.objects.all(),
"username": lambda request: request.session["loguname"],
}
},
name='index'
),
为什么提示 session 那句话<lambda>() takes exactly 1 argument (0 given)
"username": lambda request: request.session["loguname"],
这句话是我自己加的 不了觉request 有问题 怎么解决
大神加qq 453877656 展开
url(r'^$', 'simple.direct_to_template',
kwargs={
'template': 'index.html',
'extra_context': {'item_list': lambda: Item.objects.all(),
"username": lambda request: request.session["loguname"],
}
},
name='index'
),
为什么提示 session 那句话<lambda>() takes exactly 1 argument (0 given)
"username": lambda request: request.session["loguname"],
这句话是我自己加的 不了觉request 有问题 怎么解决
大神加qq 453877656 展开
1个回答
展开全部
lambda: Item.objects.all()是一个无参数的匿名函数。
lambda request: request.session["loguname"]是一个有参数的匿名函数,需要你提供参数request。显然视图函数不会把他的request参数自动赋值给你的lambda request。就好像:
b = 1
def a(b): print b
a()
这样肯定是要出错的,这是一个python本身抛出的错误,和django无关。
另外你的想法大概是这里的request就是视图函数中的request,但因为命名空间的关系,username
的值,其实是在url里就已经进行计算了再传入视图函数,你在url中使用request变量,那么自然也要在url中给出request的值。
追问
谢谢你的 耐心回答 再问一下是不是在url 不可以使用带参数的函数。。。。
追答
貌似好像不行。。。当让这是我个人的理解。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询