如何为每个网址设置分页?

2024-05-15 02:23:22 发布

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

我想知道从slug页面分页项目的正确方法是什么。我尝试了一些东西,但我似乎不知道如何正确地通过属于该教员的课程,并按每页1门课程的顺序分页。 以下是我尝试过的:

def faculty_filter(request, faculty_slug): qr = get_object_or_404(Faculty, faculty_slug=faculty_slug) query_list = Course.objects.get(qr) query = request.GET.get('q') if query: query_list = query_list.filter(Q(name__icontains=query)) paginator = Paginator(query_list, 1) page = request.GET.get('page') try: courses = paginator.page(page) except PageNotAnInteger: courses = paginator.page(1) except EmptyPage: courses = paginator.page(paginator.num_pages) context = { 'courses': courses, 'faculties': Faculty.objects.filter(faculty_slug=faculty_slug), 'departments': Department.objects.all(), 'studies': StudyProgramme.objects.all(), } return render(request, 'courses/filters/faculty_filter.html', context)

注:课程不直接属于教员。我有四个外键按此顺序绑定的模型:Faculty>;部门>;研究程序>;课程


Tags: gtgetobjectsrequestpagefilterquerylist
1条回答
网友
1楼 · 发布于 2024-05-15 02:23:22

不确定您的模型定义如何,但如果您有一个外键连接FacultyDepartment等。您可以一直导航回:

query_list = Course.objects.filter(programme__department__faculty__slug=faculty_slug)

或者,由于您有教员实例:

qr = get_object_or_404(Faculty, faculty_slug=faculty_slug)
query_list = Course.objects.filter(programme__department__faculty=qr)

请注意,我假设Course通过名为programme的外键连接到StudyProgramme,而StudyProgramme通过名为department的外键连接到Department,依此类推

基本上,两个下划线(__)用于在外键关系之间导航

相关问题 更多 >

    热门问题