Как ограничить коллекцию объектов, связанных с внешним ключом в шаблонах Django? - PullRequest
1 голос
/ 30 декабря 2010

Данная модель называется «комментарий» с отношением внешнего ключа к модели с именем «задача».

{% for task in tasks %}
  {% for comment in task.comment_set.all %}
    {{ comment }}
  {% endfor %}
...

Как лучше всего ограничить это 5 комментариями, такими как:

Entry.objects.all()[:5]

Ответы [ 2 ]

1 голос
/ 30 декабря 2010
{% for task in tasks %}
  {% for comment in task.comment_set.all|slice:"5" %}
    {{ comment }}
  {% endfor %}
{% endfor %}
1 голос
/ 30 декабря 2010

Ты не. Вы не должны выполнять «реальную работу» в шаблоне, это нарушает шаблон MVC .

Выполните реальную работу в представлении и передайте данные в шаблон (используя контекстный словарь).

def handle_comments(request):
    tasks = Task.objects.all()
    comments = {}
    for task in tasks:
      comments[task] = task.comment_set.all()[:5]
    return render_to_response('commenting.html', {'comments': comments})

Затем вы можете перебирать комментарии в вашем шаблоне:

{% for task, task_comments in comments.items %}{{ task }}{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...