#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 в шаблоне