#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. я хочу иметь возможность вызывать результат из экземпляра базы данных.