Получить контекст из другого CBV с Django - PullRequest
0 голосов
/ 08 марта 2019

Я хотел бы получить вашу помощь, чтобы использовать контекст из Django CBV в другом CBV через get_context_data().

Цель:

По сути, у меня есть django ListView() с pagination. Я забираю текущую страницу в get_context_data(). Затем я хотел бы отредактировать объект, поэтому я собираюсь UpdateView().

Когда я публикую изменения, они должны вернуться к предыдущей нумерации страниц. Например, если объект был на странице 32, после POST request я должен быть перенаправлен на страницу 32.

Мой код:

class DocumentListView(AdminMixin, CustomListSearchView):
    """ Render the list of document """

    def get_context_data(self, **kwargs):
        context = super(DocumentListView, self).get_context_data(**kwargs)

        actual_page = self.request.GET.get('page', 1)
        if actual_page:
            context['actual_page'] = actual_page
        return context

class DocumentFormView(CustomPermissionRequiredMixin, DocumentListView, UpdateView):

    def get_current_page(self, **kwargs):
        context = super(DocumentListView, self).get_context_data(**kwargs)
        actual_page = context['actual_page']
        return actual_page

    def get_context_data(self, **kwargs):
        context = super(DocumentFormView, self).get_context_data(**kwargs)
        print(self.get_current_page())
        ...       
        return context

    def post(self, request, pk=None):
        ...
        return render(request, 'app/manage_document_form.html', context)

Проблема:

Я не побеждаю, чтобы получить actual_page в моем классе DocumentFormView.

Я получил эту проблему:

AttributeError: у объекта «DocumentFormView» нет атрибута «объект»

Я попытался добавить в свою post() функцию:

self.object = self.get_object()

Но это не решает проблему.

У вас есть идеи?

...