Допустим, у меня есть следующие модели в приложении Django.Как объединить записи в django на основе нескольких критериев
class EventGroup
name = models.CharField()
class Event(models.Model):
name = models.CharField()
group = models.ForeignKey(EventGroup)
class Severity(models.Model):
name = models.CharField()
group = models.ForeignKey(EventGroup)
class LogEntry(models.Model):
timestamp = models.DateTimeField(auto_now_add=True)
event = models.ForeignKey('Event')
severity = models.ForeignKey('Severity')
Каков оптимальный способ поиска последних записей журнала каждой серьезности для каждого события в группе? То есть, если у меня есть группа событий с некоторыми серьезностями и некоторыми связанными с ней событиями, я бы ожидал получить список последних записей журнала для каждой комбинации серьезности и события.
Извините, но я пропустил немного структуры при описании моделей (см. Отредактированный код). Я пытался сделать то же самое, что и вы предлагали с вложенными циклами, но это кажется медленным. Любые альтернативы? –
@Mad Wombat: как насчет второго варианта, где вы начинаете с 'LogEntry'? Это было лучше? –
Не совсем. Кажется, что вложенные циклы убивают производительность, поскольку даже во второй версии кода основной запрос выполняется для каждой итерации. Я пытаюсь понять либо функциональный подход к этому, либо использовать API Django QuerySet каким-то творческим способом. –