Django / ListView / Использование get_context_data для подсчета всех ключей в переменной json
Я хочу вернуть в Link.html количество ссылок, содержащихся в переменной allLinks (json). Пока что я думаю, что неправильно понимаю использование get_context_data и как передать в context['CountLink'] общее количество ссылок.
С текущим кодом, я получил :
Список исследований
terre : <QuerySet [<Post: terre>, <Post: océan>]> Links océan : <QuerySet [<Post: terre>, <Post: océan>]> Links
Models.py
class Post(models.Model):
title = models.CharField(max_length=255)
url = models.URLField(max_length=255)
allLinks = models.JSONField()
def __str__(self):
return self.title
views.py
class LinkView(ListView): model = Post template_name = 'link.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['CountLink'] = Post.objects.all()
return context
Link.html
{% for post in object_list %}
<li>
<a href="{% url 'DetailLink' post.pk %}">{{ post.title }}</a> :
{{CountLink}} Links
</li>
{% endfor %}
Вы можете использовать count() В вашем случае, я думаю, вам нужно что-то вроде этого, это вернет количество объектов модели Post
context['CountLink'] = Post.objects.all().count()
Для получения дополнительной информации проверьте это
Используйте встроенный фильтр шаблонов length
:
{{ post.allLinks|length }} Links