Как взять ограниченное количество связанных (многие к одному) объектов. django

Итак, у меня есть эти три модели:

class Database(models.Model):
    fields...

class DatabaseFieldsToCheck(models.Model): 
    data_base = models.ForeignKey(Database, on_delete=models.CASCADE, related_name="sql_requests_to_check")

class Result(models.Model):
    result = models.ForeignKey(DatabaseFieldsToCheck, on_delete=models.CASCADE, related_name="results")

Итак, мое отношение выглядит следующим образом База данных ---many---> DatabaseFieldsToCheck ---many--> result. Итак, я хочу получить для каждой базы данных только последние 10 результатов. Как я могу это сделать? Должен ли я попробовать сырой sql? или написать некоторые объекты передачи данных?

в вашей модели вставьте поле, по которому вы можете упорядочить по времени, для этого сначала вставьте это поле во все ваши модели, из которых вы хотите получить результат

created = models.DateTimeField(default=timezone.now,editable=False)

тогда в ваших представлениях

def viewname(request):
    result = Result.objects.order_by('-created')[:10]
    return render(request, 'home.html',{'result':result})
Вернуться на верх