こんにちは私はちょうどdjangoの新しい私の問題は、私はいくつのコメントが投稿を持っているかをカウントし、それをHTMLテンプレートに入れたいからです。 しかし、事は、私は、データベース内のすべてのイベントを収集するために使用していますが、私はちょうど "for"が表示されているすべてのイベントを持っているコメントの数を表示したい。 これは私のモデル、ビュー、およびテンプレートです。 ありがとうございます。DJANGOテンプレートのオブジェクトをフィルタリングしてカウントするにはどうすればよいですか?
MODELSタグと私はちょうどそれがコメントを述べていたHTMLの一部でそれを見せたい
class Event(TimeStampModel):
name = models.CharField(max_length=200, unique=True)
slug = models.SlugField(editable=False)
summary = models.TextField(max_length=255)
content = models.TextField()
category = models.ForeignKey(Category)
place = models.CharField(max_length=50)
start = models.DateTimeField()
finish = models.DateTimeField()
image = models.ImageField(upload_to = 'eventos')
is_free = models.BooleanField(default=True)
amount = models.DecimalField(max_digits=6, decimal_places=0, default=0)
views = models.PositiveIntegerField(default=0)
organizer = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True)
def save(self, *args, **kwargs):
if not self.id:
self.slug = slugify(self.name)
super(Event, self).save(*args, **kwargs)
def __unicode__(self):
return self.name
class Comments(TimeStampModel):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
event = models.ForeignKey(Event)
content = models.TextField()
def __unicode__(self):
return "%s %s" % (self.user.username, self.event.name)
VIEW
class IndexView(TemplateView):
template_name = 'eventos/index.html'
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
context['events'] = Event.objects.all().order_by('-created')[:6]
context['categories'] = Category.objects.all()
context['comments'] = Comments.objects.all()
return context
HTMLテンプレート
{% for event in events %}
<li class="span4 ">
<div class="thumbnail thumbnail-1">
<h3 class="titulo-fix" >{{ event.name }}</h3>
<img class="center-cropped" src="{{ event.image.url }}" alt="">
<section>
<a href="#"><h3>{{ event.category }} </h3></a>
<div class="meta">
<time datetime="2012-11-09" class="date-1"><i class="icon-calendar"></i> {{ event.start }}</time>
<div class="name-author"><i class="icon-user"></i> <a href="#">{{ event.organizer }}</a></div>
<a href="#" class="comments"><i class="icon-comment"></i> comments</a>
</div>
<div class="clear"></div>
<p>{{ event.place }}</p>
<a href="#" class="btn btn-1">Leer mas..</a>
</section>
</div>
</li>
{% endfor %}
..もちろん、しかし、私はちょうどどのようにタグを知っていないか、それを行う方法。
couldn '{{event.comments_set.count}} 'を使うだけですか? –
間違いなく、OPにはフィルタリング機能についても言及されていますが、フィルタ基準は指定されていません。とにかく答えを編集しました。ありがとうございます – karthikr
@MadWombat Thatsはうまくいきます!おっと、ありがとう。 ところで、あなたが私に男たちを見せた方法は、より安全ですか?あまりにもありがとうございます – soultaker