分页 DetailView 中的项目列表(多对多)Django
Pagination a list of items inside a DetailView (many to many) Django
我有一个具有多对多关系的模型,我想从带有分页的 detailView 打印该关系中的所有项目(例如页面 10 个项目)有一种方法可以像 ListView 一样自动分页吗?
class CardDetailView(DetailView):
model = Card
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['banner'] = context['card'].banners.last()
context['banner_slideshow'] = context['card'].banners.all().order_by('-created_on') #i need that list paginated
return context
def get_queryset(self):
return Card.objects.all()
您可以使用查询参数,然后将页面查询放在上下文中
page = request.GET.get('page', 1)
paginator = Paginator(query_set_for_m2m, ITEMS_PER_PAGE)
try:
items = paginator.page(page)
except Exception as e:
items = paginator.page(1)
context['m2m_list'] = items
将此代码放在您的 get_context_data
上,您可以按照 here
的说明从 self.request
获取请求
我有一个具有多对多关系的模型,我想从带有分页的 detailView 打印该关系中的所有项目(例如页面 10 个项目)有一种方法可以像 ListView 一样自动分页吗?
class CardDetailView(DetailView):
model = Card
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['banner'] = context['card'].banners.last()
context['banner_slideshow'] = context['card'].banners.all().order_by('-created_on') #i need that list paginated
return context
def get_queryset(self):
return Card.objects.all()
您可以使用查询参数,然后将页面查询放在上下文中
page = request.GET.get('page', 1)
paginator = Paginator(query_set_for_m2m, ITEMS_PER_PAGE)
try:
items = paginator.page(page)
except Exception as e:
items = paginator.page(1)
context['m2m_list'] = items
将此代码放在您的 get_context_data
上,您可以按照 here
self.request
获取请求