Exemplo n.º 1
0
def get_products_by_category_id(request):
    category_id = request.GET['id']
    count = int(request.GET.get('count', 5))

    product_ids = [
        r.product_id
        for r in CategoryHasProduct.objects.filter(category_id=category_id)
    ]
    products = Product.objects.filter(
        id__in=product_ids,
        is_deleted=False,
        shelve_type=PRODUCT_SHELVE_TYPE_ON).order_by('-display_index')

    # count为-1时取全部商品
    if count > -1:
        products = products[:count]

    Product.fill_display_price(products)
    data = []
    workspace_id = 0
    for product in products:
        data.append({
            "id":
            product.id,
            "name":
            product.name,
            'pic':
            product.thumbnails_url,
            'price':
            product.display_price,
            "url":
            '?module=mall&model=product&action=get&rid=%d&webapp_owner_id=%d&workspace_id=mall'
            % (product.id, product.owner.id)
        })
    if getattr(request, 'response_ajax', True):
        response = create_response(200)
        response.data = data
        return response.get_response()
    else:
        return data