Я думаю, что сама документация говорит сама за себя.
Вы можете достичь того же результата в
Метод-1
from django.db.models import FilteredRelation, Q
result_1 = Restaurant.objects.annotate(pizzas_vegetarian=FilteredRelation('pizzas', condition=Q(pizzas__vegetarian=True), ), ).filter(
pizzas_vegetarian__name__icontains='mozzarella')
Метод-2
result_2 = Restaurant.objects.filter(pizzas__vegetarian=True, pizzas__name__icontains='mozzarella')
Вы получите лучшую производительность с Метод-1 , так как фильтрация в предложении WHERE первый набор запросов будет работать только на вегетарианской пицце.
Билет Django # 29555 содержит больше информации об использовании и производительности.
[1112 ] FilteredRelation()
не только улучшает производительность, но и создает правильные результаты при агрегировании с несколькими LEFT JOIN
с.
Если это должен быть перекрестный браузер и все, необходимо смотреть на Java (апплеты). Это может звучать старомодным, но я думаю, что это - Ваш наилучший вариант. ActiveX работает над окнами/IE только ;)
Для начала, смотрите на этот вопрос, который весьма схож: существует ли способ сделать снимок экрана с помощью Java и сохранить его к своего рода изображению?
ActiveX работал бы. Я подозреваю, что Вы смогли делать что-то в Silverlight, Flash или апплете Java также (который будет большим количеством дружественного перекрестного браузера).
Что касается второго пилота, это работает в одиноком исполняемом файле что каждый пользователь загрузки и выполнения. Таким образом, это не ограничено типичными ограничениями браузера.
Это - просто веб-страница, которой Вы хотите поспешный выстрел?
Затем можно получить доступ к представленному HTML всех страниц от объекта документа JavaScript и отправлять его в веб-сервис наряду с типом браузера и т.д. Никакая требуемая установка ActiveX :-)