示例#1
0
def queryCategory(request, sqset, use_or =True):
    """ Use the given SearchQuerySet (qset) and continue query on category
    """
    CAT_NAME = 'categories'
    if request.GET.has_key(CAT_NAME):
        sel_cats = request.GET.get(CAT_NAME, '').split(',')
        # search with OR or AND option
        if use_or:
            if sel_cats:
                first_cat = models.wrapAssignedCategory(sel_cats[0])
                sq = SQ(categories__contains=first_cat)
            for cat in sel_cats[1:]:
                org_cat = models.wrapAssignedCategory(cat)
                sq = sq | SQ(categories__contains=org_cat)
            sqset = sqset.filter(sq) 
        else:
            for cat in sel_cats:
                org_cat = models.wrapAssignedCategory(cat)
                sqset = sqset.filter(categories__contains=org_cat)
    return sqset
示例#2
0
文件: views.py 项目: NamPNQ/vp.repo
def queryCategory(request, qset, use_or =True):
    """ Use the given QuerySet (qset) and continue querying on category
        using conditions provided from request
    """
    CAT_NAME = 'categories'
    if request.GET.has_key(CAT_NAME):
        sel_cats = request.GET.get(CAT_NAME, '').split(',')
        # search with OR or AND option
        if use_or:
            if sel_cats:
                first_cat = models.wrapAssignedCategory(sel_cats[0])
                q = Q(categories__contains=first_cat)
            for cat in sel_cats[1:]:
                org_cat = models.wrapAssignedCategory(cat)
                q = q | Q(categories__contains=org_cat)
            qset = qset.filter(q) 
        else:
            for cat in sel_cats:
                org_cat = models.wrapAssignedCategory(cat)
                qset = qset.filter(categories__contains=org_cat)
    return qset