Ограничение набора запросов, отображаемых после внешнего ключа в шаблоне - Django
Я знаю, как вернуть все объекты по внешнему ключу в шаблоне Django. Но как ограничить их количество последними 3? Возможно ли это?
Пример
Models.html
class Person(models.Model):
...
class Tag(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
name = models.CharField(max_length=10)
Template.html
{% for tag in person.tag_set.all %}
...
{% endfor %}
Что ожидается (только последние 3 объекта)?
{% for tag in person.tag_set.all[:3] %}
...
{% endfor %}
Используйте фильтр шаблона slice для нарезки кверисета/списка, это позволяет получить первые 3 элемента
{% for tag in person.tag_set.all|slice:":3" %}
Отрицательная индексация кверисетов не поддерживается, получение последних трех было бы сложным в шаблоне
Не уверен, что это можно использовать в шаблоне, но вы можете подготовить свой кверисет, используя reverse(). https://docs.djangoproject.com/en/dev/ref/models/querysets/#reverse