Beispiel #1
0
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())
Beispiel #2
0
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())
Beispiel #3
0
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())
Beispiel #4
0
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())
Beispiel #5
0
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())