Я хотел бы получить вашу помощь, чтобы использовать контекст из 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()
Но это не решает проблему.
У вас есть идеи?