Я хочу создать список объектов Task, который является самой последней записью задачи для каждого клиента. Затем используйте этот список, чтобы создать список словарей (с указанием клиента, некоторых значений задачи и даты) для каждого объекта в списке задач. У меня есть модель, которая выглядит следующим образом:
class Client(models.Model):
user_name = models.CharField
class Task(models.Model):
client = models.ForeignKey('Client',)
task_type = models.ForeignKey('Task_Type',)
timestamp = models.DateTimeField(default = datetime.now(), blank = True, null = True,)
class Task_Type(models.Model):
name = models.CharField(
max_length = namelen,
unique = True,
)
class Task_Value(models.Model):
value_char = models.TextField
task = models.ForeignKey('Task',)
field = models.ForeignKey('Task_Field')
Моя попытка это выглядела примерно так:
task_objs=Task.objects.filter(client__in=client_list, task_type=1).distinct().order_by('-timestamp')
task_dict = [{task_obj[x].client.pk:task_obj[x].task_value_set.get(field__name__exact='ABC').value_char} for x in range (0,len(client_list),1)]
Но это дает мне отдельные записи для каждой комбинации клиента и метки времени (поэтому все записи). Итак, два вопроса, как получить отдельную запись для каждого клиента, которая является самой последней записью для клиента? и во-вторых, есть ли лучший способ для получения task_dict, чем я описал?