我想获得您的帮助,以便通过get_context_data()
在另一个CBV中使用来自Django CBV的上下文。
目标:
基本上,我有一个ListView()
的Django 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”对象没有属性“ object”
我尝试添加post()
函数:
self.object = self.get_object()
但这不能解决问题。
你有什么主意吗?