Django中的分页未按预期工作

2024-05-15 02:04:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想对所有可用的课程进行分页,这很容易实现。但现在我被卡住了,因为我还想对院系进行分页,这将显示被访问教师的具体课程。我有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)


Tags: getindexobjectsrequestpagealllist课程
2条回答

这不是Django的问题,您的视图肯定会处理一个分页参数page,它将指向课程,因此如果您更改每个模型分页的get参数,它将起作用。在

例如:

## views.py
page = request.GET.get('page')
## yourtemplate.html
<a href="?page={{ yourcontext }}">yourtext</a>
localhost:8000/MYVIEW/?page=2  # Goes to courses

## views.py    
page = request.GET.get('faculties')
## yourtemplate.html
<a href="?faculties={{ yourcontext }}">yourtext</a>
##
localhost:8000/MYVIEW/?faculties=2 # Goes to faculties

等等。。在

编辑时间:

{%for faculties%}将其更改为{%for faculties in faculties 2%}并将faculties从上下文中删除,因为faculties 2和faculties持有相同的queryset。在

paginator = Paginator(course_list, 1)

paginator = Paginator(faculty_list, 1)

将第二个实例名称更改为paginator_two将解决您的问题

相关问题 更多 >

    热门问题