Как добиться максимальной даты действия каждого склада с именем внешнего ключа с помощью ORM Django

модель

class stock(models.Model):
    id = models.AutoField(primary_key=True)
    symbol = models.CharField(max_length=30)
    name    = models.CharField(max_length=50)
    sector  = models.CharField(max_length=50,blank=True,null=True)
    validtill = models.DateTimeField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(blank=True,null=True)
class quote(models.Model):
    id = models.AutoField(primary_key=True)
    stock = models.ForeignKey(stock, related_name='quote', on_delete=models.CASCADE)
    valid_till = models.DateTimeField()
    ...

Текущее решение

quote.objects.values('valid_till').annotate(max_date=Max('valid_till')).values('stock','valid_till','price','created_at')

{'stock': 984, 'valid_till': datetime.datetime(2021, 12, 9, 19, 4, 16), 'max_date': datetime.datetime(2021, 12, 9, 19, 4, 16)}

Получение результата из вышеприведенного запроса, но единственное, что я хочу, это получить символ акции из таблицы внешнего ключа

вместо id я хочу получить значение столбца таблицы внешнего ключа

Вы должны указать желаемое значение отношения, например:

quote.objects.values('valid_till').annotate(max_date=Max('valid_till')).values('stock__symbol','valid_till','price','created_at')

Если вы вводите только "stock", возвращается id отношения

Вернуться на верх