Модель
class UnitLog(models.Model):
unit = models.ForeignKey(Unit, on_delete=models.CASCADE)
user = models.ForeignKey(User, to_field="username",
on_delete=models.CASCADE)
time_in = models.DateTimeField(auto_now_add=True)
time_out = models.DateTimeField(blank=True, null=True)
total_time = models.FloatField(default=0.0) # In seconds
trainee = models.CharField(max_length=30, blank=True, default="")
Модель Сериализатор
class UnitLogSerializer(serializers.ModelSerializer):
class Meta:
model = UnitLog
fields = ('unit', 'time_in', 'time_out', 'total_time', 'trainee')
Требуемый формат / структура API:
[
{
'date': 'Jan 20, 2019',
'duty: [
{
'unit':
'time_in':
'time_out':
'trainee':
},
...
]
},
...
]
По сути, я хочу сгруппировать рабочие журналы сотрудников по разным датам на внешнем уровне и перечислить все журналы в этот день на внутреннем уровне.
Я могу использовать groupby из itertools, упорядочивать набор запросов по time_in__date и создавать список списков журналов, выполненных в разные даты, с a для l oop.
Но я не знаю, как сериализовать список списков. Как мне начать писать сериализатор? Я смутно представляю себе структуру вложенности того же сериализатора, но я не могу понять представление / viewset и набор запросов, который передается. Есть идеи?