Просмотры джанго с вкусным пирогом джанго

Я строю киоск магазина в django, и у меня есть представление, которое отображает некоторые проданные продукты в пределах временного диапазона, например так;

def product_sold_report(request):
    response = {}
    id_list = []
    try:
        _start = _get_parameter(request, "_start")
    except Exception, e:
        _start = None

    try:
        _end = _get_parameter(request, "_end")
    except Exception, e:
        _end = None

    if _start and _end:
        orders = Order.objects.filter(created__range=[datetime.datetime.fromtimestamp(float(_start)),datetime.datetime.fromtimestamp(float(_end))]).filter(status = 4).order_by("-created")
    else:
        orders = Order.objects.all().filter(status=4).order_by("-created")

    for order in orders:
        id_list.append(order.id)

    for item in OrderItem.objects.filter(order__in = id_list):
        i = Order.objects.get(id = item.order_id)
        try:
            product = Product.objects.get(id = item.product_reference)
            barcode = product.barcode
        except Exception,e:
            barcode = None



        if item.product_name in response:
            response[item.product_name]["product_quantity"] += item.quantity
        else:
            response[item.product_name] = {
                "product_quantity":item.quantity,
                "product_barcode":barcode


            }

    return HttpResponse(simplejson.dumps(response), mimetype="text/json")

  

Тем не менее, я хочу использовать остальную структуру, чтобы у меня было другое веб-приложение на другом сервере, запрашивающее это приложение и получающее те же результаты, что и проданные продукты, я рассмотрел django tastypie, но, похоже, это сильно зависит от ресурсов моделей. Возможно ли это сделать с помощью django tastypie или django rest framework.

Спасибо


person Muhia NJoroge    schedule 25.01.2013    source источник


Ответы (1)


Вам НЕ НУЖНО полноценное спокойное обслуживание, чтобы получить те же результаты. Пока ваши представления возвращают правильно сформированные данные JSON — просто используйте хорошие шаблоны URL в вашем url.py, которые сопоставляются с вашими функциями представления.

Вы можете создавать шаблоны URL-адресов так же, как deliciouspie /api/v1/products_sold/. Просто поработайте с регулярным выражением и убедитесь, что URL-адреса имеют смысл.

person Hacking Life    schedule 25.01.2013
comment
Большое спасибо Hacking Life за ответ, я думаю, что сделаю именно это, потому что я не могу найти способ заставить django deliciouspie вернуть данные, которые мне нужны. Кстати, вы думаете, что создание пользовательских представлений будет иметь какие-либо проблемы с производительностью? Спасибо - person Muhia NJoroge; 25.01.2013
comment
Нет, если вы убедитесь, что ваши запросы эффективны. Убедитесь, что при работе с вашими данными вы попали в данные с тем, что вам нужно ОДИН РАЗ, а затем, возможно, изучите такие вещи, как синтаксический анализ возвращаемого словаря данных. Чем меньше вы обращаетесь к серверу за дополнительной информацией, тем лучше - person Hacking Life; 25.01.2013