Как добиться максимальной даты действия каждого склада с именем внешнего ключа с помощью 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 отношения