Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django: get count of ForeignKey item in template?

Tags:

django

Straightforward question - apologies if it is a duplicate, but I can't find the answer if so.

I have a User model and a Submission model, like this:

class Submission(models.Model):
    uploaded_by = models.ForeignKey('User')
class User(models.Model):
    name = models.CharField(max_length=250 )

How can I show the number of Submissions made by each user in the template? I've tried {{ user.submission.count }}, like this:

for user in users:
    {{ user.name }} ({{ user.submission.count }} submissions)

but no luck...

like image 798
AP257 Avatar asked Dec 22 '22 04:12

AP257


2 Answers

Try this

{{user.submission_set.all|length}}
like image 140
czarchaic Avatar answered Jan 11 '23 21:01

czarchaic


You forgot the "set". It should be {{ user.submission_set.count }}. You can always change the related name, but the default is <fk class name>_set. For more see the relations documentation.

like image 42
rz. Avatar answered Jan 11 '23 21:01

rz.