python - ejemplos - django
Llamar manualmente una vista genérica basada en clase (2)
La primera forma - CategoryTypes.as_view()(self.request)
- es correcta. El problema es que si su vista devuelve un TemplateResponse
, su método de render
no se llama automáticamente.
Entonces, si necesita acceder al contenido de la respuesta, llame primero a render()
.
Actualmente estoy intentando llamar a una vista genérica basada en clase desde otra vista genérica basada en clase y parece que no puedo hacerlo correctamente.
Maneras que he intentado:
result = CategoryTypes.as_view() # The same way you put it in the urlconf
print result
Impresiones: <function CategoryTypes at 0x92bd924>
CategoryTypes.as_view()(self.request)
# &
CategoryTypes().dispatch(self.request)
Tracebacks:
ContentNotRenderedError at /crm/categories/company/ The response content must be rendered before it can be accessed.
result = CategoryTypes().__init__()
print result
Impresiones: None
¿Cómo llamo a esto desde otra vista? He intentado seriamente todos los métodos en la clase y la forma de llamarlo que puedo imaginar.
O puede acceder directamente solo al contenido a través de result.rendered_content
. Antes de hacer esto, asegúrese de establecer una sesión en su solicitud antes de pasar a una vista:
self.request.session = {}
CategoryTypes.as_view()(self.request)