Необходимо получить списки пользователей вдоль среднего в Django, а данные в отдельной таблице - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь получить список пользователей вместе со средним временем входа в систему

Модель 1:

class User(models.Model):
    name = models.CharField(max_length=200) 
    age = models.CharField(max_length=200)
    email = models.CharField(max_length=200)

Модель 2:

class History(models.Model):
    login_time = models.DateTimeField()
    logout_time = models.DateTimeField()
    user = models.ForeignKeyField(User, related_name="user_relation")

Мне нужны записи в списке в следующем формате. Avg_logged_in_time будет в среднем равно (logout_time - время входа)

Name, email, avg_logged_in_time

1 Ответ

0 голосов
/ 29 мая 2019

Я думаю, ваш набор запросов будет выглядеть примерно так.Вы можете проверить документы для получения дополнительной информации.Кроме того, вы можете проверить здесь для получения информации о F выражениях запросов.

User.objects.values(
    'name', 'email', 'avg_logged_in_time'
).aggregate(
    avg_logged_in_time=Avg(
        F('history__logout_time') - F('history__login_time'), output_field=models.DateTimeField()
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...