Issue
I have a program that post some places and shows them in a HTML template, but I also want to show the users many of these places I have and I'm wondering how I can reach this.
I have in my models.py:
class Places(models.Model):
name=models.CharField(max_length=100)
text=models.TextField()
website=models.URLField()
published_date = models.DateTimeField(
blank=True, null=True)
def __str__(self):
return self.name
def publish(self):
self.published_date = timezone.now()
self.save()
in views.py:
def places(request):
places=Places.objects.order_by('-published_date')[:10]
return render(request, 'templates/places.html', {'places':places})
and the html template:
<div class="container">
<h2>Places<span class="badge"> HERE'S WHERE I WANT THE NUMBER OF PLACES</h2>
</div>
I hope you can help me out. Thanks for the answers
Solution
You can't get the count of objects in django's template without writing a custom tag.
Even if you could however it would be 10, since you especially said places to only include 10 objects.
You should instead pass places_count
via the context to the template:
def places(request):
places = Places.objects.order_by('-published_date')[:10]
places_count = Places.objects.count()
return render(
request, 'templates/places.html', {'places':places, 'places_count': places_count}
)
And then in the template:
<div class="container">
<h2>Places <span class="badge">{{ places_count }}</span></h2>
</div>
Answered By - Chris Schäpers
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.