Как подсчитать количество различных ключей в словаре в шаблоне django

#django #django-templates

Вопрос:

Номера-это серийный номер, и словарь принадлежит этому серийному номеру-это данные. Я хочу подсчитать длину словаря, принадлежащего отдельному серийному номеру в шаблоне django. Название словаря — redict.

 {15: [<videoscomment: Reply...byNavneetKaur>, <videoscomment: Reply...byNavneetKaur>], 20: [<videoscomment: 2nd comment reply...byNavneetKaur>]}
 

Я пробовал следующие методы

комментарии.sno-это номер, и ниже приводятся данные, относящиеся к этому номеру

 redict|get_val:comments.sno
 

и я поставил счетчик последним, чтобы получить длину данных.

 redict|get_val:comments.sno.count
 

И помните, что мы должны сделать это в шаблоне django.

Комментарии:

1. Могу я узнать, почему вы хотите сделать это в шаблоне ? Всегда желательно выполнять бизнес-логику в представлениях, а не в шаблонах ??

2. Потому что я все устроил в соответствии с этим. Поэтому я не могу тратить свое время, снова делая все это. Я буду очень благодарен вам, если вы решите эту проблему.

3. Извините , я не привык к тому, как вы спрашиваете… Но если обновление большого количества материалов-ваша единственная проблема, то, пожалуйста, обратите внимание, что для выполнения этой операции в представлениях потребуется только одна строка кода. Дайте мне знать, если вы хотите, чтобы вас это устраивало

4. Окк, я могу попробовать. Вы можете рассказать мне об этом методе.

Ответ №1:

1 Если вы знакомы с аннотациями :

 querysetname = Model.objects.all().annotate(Count('The_Distinct_Field_REQD', 
                                         distinct=True))
 

Или создание набора набора запросов даст только отдельные элементы, поскольку наборы не допускают дублирования значений,

 queryset = already_created_queryset
distinct_count = set(queryset).count() //add this line alone
 

или

 distinct_count = Model.objects.all(filter as per your condition).distinct('field1',...'n_fields').count() 
 

2 Передайте вычисленное количество отличий через контекстный словарь :

 context = {
    'dist_count' : distinct_count
}
 

3 Используйте dist_count в шаблоне