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
展开
 我来答
likecao
2013-07-08 · TA获得超过288个赞
知道小有建树答主
回答量:446
采纳率:0%
帮助的人:242万
展开全部

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 不可以使用带参数的函数。。。。
追答
貌似好像不行。。。当让这是我个人的理解。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式