Как взять ограниченное количество связанных (многие к одному) объектов. 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})