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

#django #django-models #one-to-many #django-orm

Вопрос:

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

 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")
 

итак, мое отношение выглядит так
: База данных —много—> Проверка полей базы данных —много—>> результат>>
Поэтому, на мой взгляд, я хочу получить для каждой базы данных только последние 10 результатов.
как я могу это сделать?
должен ли я попробовать необработанный sql ? или mby пишет какие-то объекты передачи данных ?

Комментарии:

1. Последние 10 результатов, независимо от которых DatabaseFieldsToCheck ? Или последние 10 за DatabaseFieldsToCheck ?

Ответ №1:

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

 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})
 

Комментарии:

1. я хочу иметь возможность вызывать результат из экземпляра базы данных.