def public_main(request, cid=-1, page=1): # 因为数据库可能会删记录,cid有可能没有为1的,所以就默认没有cid,让cid=-1 # 获取所有类型 categories = Category.objects.all() # 记住当前是第几个类别,好加额外的类名,变颜色,记忆功能 # 获取所有的分类id position = [cat.cid for cat in categories] # 列表的index是查询,当前是第几项,渲染到局部变量到模板中 # 百度分页的类????????????????????定义这一页显示多少个页码 # 1.检索分类 if request.method == 'POST': # 因为这里是post提交,不是get提交了,就不能从网址中直接获取cid了,就得用个隐藏标签得到一个cid的值,如果是get不用,直接就可以拿得到,注意两者都是取的局部变量cid,在模板中要用{{cid}} cid = int(request.POST.get( 'cid', -1)) # 如果没有获取到cid,就默认为-1,注意默认得到的是字符串,如果要和整型比较,要转一下才行 search = request.POST.get('search', '') # 文章检索,按照cid和标题搜索 articles = Article.objects.filter(cid=cid, title__contains=search) else: # 要注意整体的逻辑判断 这里是get提交 if cid < 0: first_category = categories.first() # 查询第一个分类,博客初始化,最少必须有一条记录的 cid = first_category.cid # first返回来的是对象 找第一个分类的cid # 按照cid查询,刚开始默认的第一页 articles = Article.objects.filter(cid=cid) pos = position.index(cid) # 查询当前的cid在列表中是第几项,同样会把这个局部变量也渲染到模板中 # 分页是传哪个结果集就对哪个数据进行分页 只要局部变量名一样就行了 # 生成分页器 paginator = BaiduPaginator(articles, 2) # 返回的是分页的数据,模板中改成分页的数据 # 分页对象 pager = paginator.page(page) # 老师改写的那里总页数给了pagination.num_pages pager.page_range = paginator.custom_range(paginator.num_pages, page, 5) # return render(request, 'wenzhang_xinwen.html', {'categories': categories}) return render(request, 'wenzhang_xinwen.html', locals())
def public_main(request, cid=-1, page=1): categories = Category.objects.all() # 获取所有分类id postion = [cat.cid for cat in categories] if request.method == "POST": cid = int(request.POST.get('cid', -1)) keyword = request.POST.get('keyword', '') # 文章检索 articles = Article.objects.filter(cid=cid, title__icontains=keyword) else: # 检索分类 if cid < 0: first_category = categories.first() # 查询第一个分类 cid = first_category.cid # 第一个分类的cid # 文章检索 articles = Article.objects.filter(cid=cid) pos = postion.index(cid) # 分页 paginator = BaiduPaginator(articles, 10) pager = paginator.page(page) pager.page_range = paginator.custom_range(paginator.num_pages, page, 5) return render(request, "wenzhang_xinwen.html", locals())
def user_manage(request, page=1): if request.method == 'POST': search = request.POST.get('search', '') users = User.objects.filter(username__contains=search) else: users = User.objects.all() paginator = BaiduPaginator(users, 2) pager = paginator.page(page) pager.page_range = paginator.custom_range(paginator.num_pages, page, 3) return render(request, 'users_manage.html', locals())
def catg_manage(request, page=1): if request.method == 'POST': search = request.POST.get('search', '') categories = Category.objects.filter(name__contains=search) else: categories = Category.objects.all() paginator = BaiduPaginator(categories, 2) # 返回的是分页的数据,模板中改成分页的数据 # 分页对象 pager = paginator.page(page) # 老师改写的那里总页数给了pagination.num_pages pager.page_range = paginator.custom_range(paginator.num_pages, page, 3) # return render(request, 'wenzhang_xinwen.html', {'categories': categories}) return render(request, 'fenlie_guanli.html', locals())
def mark_manage(request, page=1): if request.method == 'POST': search = request.POST.get('search') marks = Mark.objects.filter(content__contains=search) else: marks = Mark.objects.all() # 创建分页器对象 paginator = BaiduPaginator(marks, 2) # 创建每一页的分页对象 pager = paginator.page(page) # 每页的页码范围,使用自定义封装类 pager.page_range = paginator.custom_range(paginator.num_pages, page, 3) return render(request, 'mark_manage.html', locals())