python - Django, getting related objects in a loop of objects -


let's users can make list of types. when add list of types, new usertype object created user , type foreignkeys.

other users can 'like' individual types user has listed (usertypes).

given query user's usertypes, how can best number of userlikes on each usertype in queryset use in template? loop through, query each , return result separate list? seems pretty messy.

class type(model.models):     name = models.charfield(max_length=100, blank=false)     description = models.textfield(max_length=1000, blank=true)     created_by = models.foreignkey(user, blank=true, null=true, unique=false)   class usertype(model.models):     user = models.foreignkey(user, unique=false)     type = models.foreignkey(type, unique=false)     is_active = models.booleanfield(default=true)   class userlike(model.models):     user = models.foreignkey(user, unique=false)     user_type = models.foreignkey(usertype, unique=false) 

how simple count of userlike set usertype instance:

some_user_type = usertype.objects.get(user_id=some_user_pk) like_count = some_user_type.userlike_set.all().count() 

or if have bunch of usertypes in queryset can use annotate:

from django.db.models import count qs = usertype.objects.annotate(count('userlike')) 

now each result in queryset has count: qs[0].userlike__count


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

javascript - addthis share facebook and google+ url -

ios - Show keyboard with UITextField in the input accessory view -