我想对所有可用的课程进行分页,这很容易实现。但现在我被卡住了,因为我还想对院系进行分页,这将显示被访问教师的具体课程。我有4个模式:学院,系,研究和课程。分页也会显示给faculties,但问题是如果我尝试转到第二页,它会将我重定向到所有课程列表的第二页。或者,如果我更改了所有课程的页面,然后尝试访问某个教员,则该教员中根本不会显示任何课程。在
def index(request):
course_list = Course.objects.all()
page = request.GET.get('page', 1)
paginator = Paginator(course_list, 1)
try:
courses = paginator.page(page)
except PageNotAnInteger:
courses = paginator.page(1)
except EmptyPage:
courses = paginator.page(paginator.num_pages)
faculty_list = Faculty.objects.all()
page = request.GET.get('page2', 1)
paginator = Paginator(faculty_list, 1)
try:
faculties = paginator.page(page)
except PageNotAnInteger:
faculties = paginator.page(1)
except EmptyPage:
faculties = paginator.page(paginator.num_pages)
context = {'courses': courses,
'faculties': faculties,
'departments': Department.objects.all(),
'studies': StudyProgramme.objects.all(),
'teachers': Teacher.objects.all()
}
return render(request, 'courses/index.html', context)
这不是Django的问题,您的视图肯定会处理一个分页参数
page
,它将指向课程,因此如果您更改每个模型分页的get参数,它将起作用。在例如:
等等。。在
编辑时间:
{%for faculties%}将其更改为{%for faculties in faculties 2%}并将faculties从上下文中删除,因为faculties 2和faculties持有相同的queryset。在
paginator = Paginator(course_list, 1)
paginator = Paginator(faculty_list, 1)
将第二个实例名称更改为
paginator_two
将解决您的问题相关问题 更多 >
编程相关推荐