Вручную вызовите общий общий класс
В настоящее время я пытаюсь вызвать общий общий класс из одного класса, основанного на общем представлении, и, похоже, не работает правильно.
Способы, которые я пробовал:
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)
Tracebacks:
ContentNotRenderedError at /crm/categories/company/
The response content must be rendered before it can be accessed.
result = CategoryTypes().__init__()
print result
Отпечатки: None
Как мне это назвать из другого представления? Я серьезно пробовал каждый метод по классу и способу его вызова, о котором я могу думать.
Ответы
Ответ 1
Первый способ - CategoryTypes.as_view()(self.request)
- правильный. Проблема в том, что если ваше представление возвращает TemplateResponse
, его метод render
не вызывается автоматически.
Итак, если вам нужно получить доступ к контенту ответа, сначала вызовите render()
.
Ответ 2
Или вы можете напрямую получать доступ к содержимому через result.rendered_content
. Прежде чем сделать это, убедитесь, что вы установите сеанс в свой запрос, прежде чем переходить в представление:
self.request.session = {}
CategoryTypes.as_view()(self.request)