Я пытаюсь написать запрос в Django, но я не уверен, как лучше всего это написать. Также предполагается, что база данных - это mySQL. Это имеет значение, если используется Different.
class Homework(models.Model):
title = TextField()
class Assignment(models.Model):
homework_id = Foreignkey(Homework, on_delete=models.CASCADE)
task = IntegerField(default=1)
version = IntegerField(default=1)
Учитывая приведенные выше модели, я хочу получить все задания в конкретном домашнем задании, где задания являются последней версией задачи. пример:
Homework_id: 1
assignment v1, t1
assignment v2, t1
assignment v1, t2
Если у меня есть один объект домашнего задания, в котором есть задание с заданием 1 и задание 2, то запрос результата должен вернуть Assignment t1, v2 and Assignment t2, v1
v refers to version
t refers to task
Я ничего не пробовал, я просто не могу обдумать такой запрос в django. пожалуйста помоги. Я мог бы легко просто взять список заданий и просмотреть последнюю версию каждой задачи, но должен быть лучший способ.






Вы можете попробовать аннотировать задачи с максимальным номером версии следующим образом:
Assignment.objects.filter(homework_id=1).values('task').annotate(version=Max('version'))
Что даст вам что-то вроде:
<QuerySet [{'task': 1, 'version': 2}, {'task': 2, 'version': 1}]>
что ты уже испробовал? любой запрос Django, который дает ошибку?