0
私はPostモデルを持っている:これはちょうどSOのように、質問と回答のサイトになるだろうジャンゴ取得ポスト答え
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_question = models.BooleanField(default=True)
.
.
.
created_date = models.DateTimeField(
default=timezone.now)
def __str__(self):
return self.post_title
。
この投稿は質問の場合は 'is_question'となります。 投稿が回答の場合、 '質問'フィールドは質問の投稿のIDを参照し、 'is_question'は偽になります。
シンプル、右。
すべての質問とそれに関連する回答を得ようとしていますが、これは1つまたは複数のクエリで可能ですか(ループを使用しないで)?
次のフィルタは、(upvotesの数、ビュー、ポストタグのような)だけの質問といくつかの関連のものを返します。
posts = Post.objects.filter(
created_date__lte=timezone.now(),
is_question=1,
is_published=1
).order_by(
'-created_date',
).prefetch_related(
Prefetch('vote_set', queryset=Vote.objects.filter(
user=request.user, date_voted__gte=dt_aware), to_attr='user_voted')
).prefetch_related(
Prefetch('tags', to_attr='tagss')
).annotate(total_votes=Coalesce(Sum('vote__vote_type'),0)
).annotate(views_num = Count('questionvieaw', distinct=True)
).select_related()
。プロパティ* answers *を持つ質問モデルを作成します。次に、回答モデルを作成します。その結果、質問はQuestion.objects.all()として残されます – David
回答フィールドの内容は何ですか?アンサーIDのコンマ区切りリスト – SMahdiS