Я посмотрел на это thread, на примере сортировки словарей.Заказать словарь в контексте Django
У меня есть словарь программных объектов, где ключ является программным объектом, а значение представляет собой поиск количества связанных объектов проекта.
def DepartmentDetail(request, pk):
department = Department.objects.get(pk=pk)
programmes = Programme.objects.all().filter(department=department).exclude(active=False).order_by('long_name')
combi = {}
for p in programmes:
prj = Project.objects.all().filter(programme=p)
combi[p] = str(len(prj))
return render(request, 'sysadmin/department.html',{'department': department, 'programmes': programmes, 'combi': sorted(combi.items())})
В модели, программа возвращает строку «» параметра long_name, поэтому я считаю, что я пытаюсь разобраться строковый ключ и значение строки.
В шаблоне я получаю до ключей и значений, как это так,
{% for programme, n in combi %}
Это дает мне ошибку ..
unorderable types: Programme() < Programme()
Я не очень понимаю ошибку, в python 3 documentation он заявляет, что метод sorted() принимает любое итеративное значение. Так почему это происходит?
Я смотрю на коллекции. ЗаряжаемыйDict для решения проблемы, но я хочу знать, почему это не работает.
Thanx.
Я смотрю на связанную с сервером серверную часть проектов (поскольку это единственный способ, о котором я могу думать), вы предлагаете мне сделать это на стороне клиента? Если да, то каков был бы правильный способ сделать это? – Xeberdee
Просто посмотрел, каковы значения combi на самом деле, и казалось бы, что добавление 'annotate (project_count = Count ('project'))' будет необходимо – Sayse
Пожалуйста, см. Обновление – e4c5