私は質問回答フォーラムで働いています。djangoのIDの与えられたリストのレコードを別々に取得する方法
私がこれをやろうとしているのはかなり単純です。
質問リストページでは、質問の合計回答数を表示する必要があります。
私は質問のレコードからすべての答え量を取得する方法を知っている - 私はすべて与えられた質問レコードに対して個別の回答レコードの量を生成し、単一のクエリをしたい、
answer_records = Answer.objects.filter(question = question_record).count()
をしかし。これまでのところ私は試してみました -
answer_records = Answer.objects.filter(question__in = question_records).count()
すべての質問レコードの1つのカウントのみを生成します。ここで
は私のモデルである -
class Question(models.Model):
question_text = models.CharField(max_length = 500)
pub_date = models.DateTimeField('date published')
views = models.BigIntegerField(default = 0)
status = models.BooleanField(default = True)
def __str__(self):
return self.question_text
class Answer(models.Model):
question = models.ForeignKey(Question, on_delete = models.CASCADE, blank = True, null = True)
answer_text = models.TextField(default = '')
pub_date = models.DateTimeField(default = timezone.now)
def __str__(self):
return self.answer_text
私はそれをどのように行うことができますか?ご協力いただきありがとうございます!
疑問の余地はありません。新しいセットのすべてのレコードを合計するたびに – user3384985
'question'を' values() 'と' .annotate() 'の' question_id'に置き換えてみてください。私がDjangoを使用して以来、長い時間が経ちました。また、 'SUM 'を' COUNT'に置き換えてください。 –
'.annotate(question_count = Count(' question '))。values(' id '、' question_count ')'のように書き直すべきだと思います。こうすることで、結果を辞書として取得できます:{'id':smth、 'question_count':smth2}。 –