将参数传递给django as_view函数

时间:2018-03-22 10:53:32

标签: django django-class-based-views

我有一个通过Book.java函数传递参数的网址:

as_view

当我尝试访问视图中的columns属性时,它返回None而不是我通过url传递的元组

url(
    r'^$',
    ChangeListView.as_view(
        columns=('username', 'email')
    ),
    name="user-list"
),

2 个答案:

答案 0 :(得分:3)

您没有从传入的数据中实际设置self.columns的任何内容。

但这不是正确的做法。相反,将其作为extra option传递,并从kwargs访问它。

url(
    r'^$',
    ChangeListView.as_view(),
    {'columns': ('username', 'email')}
    name="user-list"
),

...

print(self.kwargs['columns'])

答案 1 :(得分:0)

我对您的问题感到困惑-传递给setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 的任何参数都应该已设置为视图实例的属性,因此as_view应该设置为self.columns。 / p>

(请参见Django's base View class的来源)

但是,在这种情况下,('username', 'email')变量(这是您要返回的变量)应该context-您传递给None的变量不会影响从as_view()返回的内容(默认为self.get_context_data())。也许您打算写None

另一方面,如果您表示return self.columns意外地什么也不打印,那么我不确定发生了什么。