0
私は2つのモデル、投稿と投票があります。ユーザーは投稿をアップヴォートとダウンボートできます。Django投稿あたりの投票の合計を取得
models.py:
class Post(models.Model):
poster = models.ForeignKey('auth.User')
question = models.ForeignKey('self', null=True, blank=True)
post_title = models.CharField(max_length=300)
post_content = models.TextField(null=True, blank=True)
is_published = models.BooleanField(default=True)
is_locked = models.BooleanField(default=False)
is_question = models.BooleanField(default=True)
is_deleted = models.BooleanField(default=False)
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
date_modified = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.post_title
class Vote(models.Model):
user = models.ForeignKey('auth.User')
post = models.ForeignKey('Post')
vote_type = models.SmallIntegerField()#-1, 0, 1
date_voted = models.DateTimeField(
default=timezone.now)
def __str__(self):
return self.user
私はテンプレートに投稿を戻すために私の見解では、次のコードを使用します。
views.py:
def index(request):
posts = Post.objects.filter(created_date__lte=timezone.now(
), is_question=1, is_published=1).order_by('-created_date')
#removed the paging stuff here for simplification
return render(request, 'homepage/index.html', {'posts': posts})
これはちょうど記事を返しますしかし、私はまた、各投稿のvote_type列の合計が投稿の総投票数であることを望んでいます。
現在、各投稿のテンプレートタグを使用して、各投稿の投票を確認しています。
私のindex.htmlサンプルコード:{{post.total_votes}}:
{% for post in posts %}
{{ post|total_votes|default:"0" }}
{% endfor %}
はviews.pyですべてを照会すると、テンプレートに、私はこのようにチェックできる方法はありますか?