【发布时间】:2014-06-16 12:54:25
【问题描述】:
这是我的观点(简化):
class MyView(TemplateView):
def __init__(self):
self.foo = 'bar'
super(MyView, self).__init__()
这是在 urls.py 中:
url(
r'^/foo/$',
MyView.as_view(foo='baz'), name='my_view'
)
当我运行它时,我收到以下错误:
TypeError: MyView() received an invalid keyword 'foo'. as_view only accepts arguments that are already attributes of the class.
为什么?我认为这行得通。 :/
至少根据这篇文章: http://reinout.vanrees.org/weblog/2011/08/24/class-based-views-walkthrough.html#class-view
如果我理解正确,这应该将属性foo 设置为'baz' 传入as_view 的值。如果as_view 中没有任何属性,则值应为'bar',如__init__ 中定义的那样。
【问题讨论】:
标签: python django django-templates