Only display items with a unique attribute in a django template -


i have list being displayed in template:

edit: more complete code template:

{% assertions in badge_assertions_by_type %}     {{assertions.badge_type.name}}           {% assertion in assertions.list %}           {{assertion.badge.name}}           {{assertion.time_issued}}       {% endfor %}   {% endfor %} 

badge_assertions_by_type defined here.

{{assertions.list}} looks this:

[<badgeassertion: mybadge#1>, <badgeassertion: mybadge#1>, <badgeassertion: mybadge#1>, <badgeassertion: mybadge#1>, <badgeassertion: mybadge#2>]  

instead of displaying of these items, want display unique items, number showing how many, e.g instead of:

mybadge#1 mybadge#1 mybadge#1 mybadge#1 mybadge#2 

i want this, preferably done in template:

mybadge#1 (x4) mybadge#2 

the text being displayed {{assertion.badge.name}}, same badgeassertion model's __str__ why looks same in {{assertions.list}}

assertions.list coming other stuff higher (see here, there confusingly called badges.list)

the models:

class badge(models.model):     name = models.charfield(max_length=50, unique=true)     ...  class badgeassertion(models.model):     badge = models.foreignkey(badge)     ... 

count distinct, so:

assertions = badgeassertion.objects.all().annotate(count('badge__name',                                           distinct=true)) 

docs clarify


Comments