рассматривать эти модели:Джанго условного максимума для каждого с внешним ключом
class Author(models.Model):
name = models.CharField(max_length=200)
class Book(models.Model):
author = models.ForigenKey(Author)
name = models.CharField(max_length=200)
created_at = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=True)
Я хочу запросить всех авторов, с последними (например Max('created_at')
) книгами из них в той же строке, но только тогда, когда книга active=True
.
Мне нужно всего Связанный объект книги - не только максимальная дата.
Если такой книги нет - все активны = False или просто их нет - запрос должен выводить NULL
, где необходимо, а не книгу.
Я пытался написать что-то вроде этого:
Author.objects.annotate(max_book_date=Max('book'))
, который делает работу, но не хватает дополнительных полей книги, и я не знаю, как это работает в случае нулевой (т.е. нет книги), и условие active=True
не существует ..
Этого недостаточно для меня, мне нужен связанный объект книги (его название и подробная информация) не только о максимальной дате. BTW Я не думаю, что вызов .all() в конце помогает во что-то – user3599803