23

我目前正在尝试从另一个基于类的通用视图中调用基于类的通用视图,但似乎无法正确执行。

我试过的方法:

result = CategoryTypes.as_view()  # The same way you put it in the urlconf
print result

印刷:<function CategoryTypes at 0x92bd924>

CategoryTypes.as_view()(self.request)
# &
CategoryTypes().dispatch(self.request)

追溯:

ContentNotRenderedError at /crm/categories/company/ The response content must be rendered before it can be accessed.

result = CategoryTypes().__init__()
print result

印刷:None

我如何从另一个角度称呼它?我已经认真尝试了课堂上的所有方法以及我能想到的调用方式。

4

2 回答 2

42

第一种方式CategoryTypes.as_view()(self.request)————是对的。问题是,如果您的视图返回 a TemplateResponse,则不会自动调用其render方法。

因此,如果您需要访问响应的内容,render()请先调用它。

于 2011-08-31T16:35:14.400 回答
1

或者您可以通过 直接访问内容result.rendered_content。在进行此操作之前,请确保您在传递到视图之前将会话设置为您的请求:

self.request.session = {}
CategoryTypes.as_view()(self.request)
于 2017-09-25T09:51:10.480 回答