Выбор специальных элементов по ключу foregin в django
У меня есть две модели
class Product(models.Model):
name = models.CharField(max_length=50)
averageRating = models.IntegerField(null=True, blank=True)
ratingCount = models.IntegerField(null=True, blank=True)
cover = models.ImageField(upload_to='images/', default=None, blank=True, null=True)
...
и
class VariantProduct(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
mainPrice = models.IntegerField()
discountPrice = models.IntegerField(null=True, blank=True)
это означает, что разные варианты продуктов имеют разные цены.
теперь мне нужен вариант продукта, который имеет минимальную цену
в SQL я думаю, что этот код работает для моей цели но я не знаю, как я могу получить этот результат в Django
Вы можете использовать аннотацию, чтобы прикрепить минимальную цену VariantProducts, прикрепленных к объектам Product:
from django.db.models import Min
Product.objects.annotate(minimum_main_price=Min('variantproduct__mainPrice'))