Как используются объекты FilteredRelation () в Django ORM (Django 2.X)?

Если ваш источник изображения является png, используйте следующие функции:

Image imgSmall = imgBig.getScaledInstance(
        targetWidth, targetHeight, Image.SCALE_SMOOTH);

Если вы хотите изменить размер jpeg или gif без лишнего качества, я создал библиотеку в 2010 году для этого: beautylib on github , который использует внутренне эту другую библиотеку: java-image-scaling . Вы можете непосредственно увидеть исходный код, чтобы найти что-то полезное: https://github.com/felipelalli/beautylib/blob/master/src/br/eti/fml/beautylib/ResizeImage.java

1
задан Devang Padhiyar 28 March 2019 в 06:13
поделиться

1 ответ

Я думаю, что сама документация говорит сама за себя.

Вы можете достичь того же результата в
Метод-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 с.

0
ответ дан JPG 28 March 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: