Подтвердить что ты не робот

Вручную вызовите общий общий класс

В настоящее время я пытаюсь вызвать общий общий класс из одного класса, основанного на общем представлении, и, похоже, не работает правильно.

Способы, которые я пробовал:

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

Как мне это назвать из другого представления? Я серьезно пробовал каждый метод по классу и способу его вызова, о котором я могу думать.

4b9b3361

Ответ 1

Первый способ - CategoryTypes.as_view()(self.request) - правильный. Проблема в том, что если ваше представление возвращает TemplateResponse, его метод render не вызывается автоматически.

Итак, если вам нужно получить доступ к контенту ответа, сначала вызовите render().

Ответ 2

Или вы можете напрямую получать доступ к содержимому через result.rendered_content. Прежде чем сделать это, убедитесь, что вы установите сеанс в свой запрос, прежде чем переходить в представление:

self.request.session = {}
CategoryTypes.as_view()(self.request)