>

홈페이지에서 각각의 질문에 대한 질문과 답변 수를 표시하려고합니다. 어떻게합니까?

Models.py

class Question(models.Model):
    CATEGORY_CHOICES = (
        ('Math', 'Math'),
        ('Geography', 'Geography'),
        ('Biology', 'Biology'),
        ('Physics', 'Physics'),
        ('Chemistry', 'Chemistry'),
        ('Health', 'Health'),
        ('Computer Science', 'Computer Science'),
        ('History', 'History'),
    )
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    description = models.TextField(max_length=3000)
    slug = models.SlugField(max_length=140, unique=True)
    date = models.DateField(null=True, default=datetime.date.today)
    category = models.CharField(choices=CATEGORY_CHOICES, max_length=50, default=None, null=True)
    satisfied = models.BooleanField(default=False)
    def __str__(self):
        return self.title
    def _get_unique_slug(self):
        slug = slugify(self.title)
        unique_slug = slug
        num = 1
        while Question.objects.filter(slug=unique_slug).exists():
            unique_slug = '{}-{}'.format(slug, num)
            num += 1
        return unique_slug
    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = self._get_unique_slug()
        super().save()
class Answer(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    user = models.ForeignKey(User, default=None)
    answer = models.TextField(max_length=3000, null=True)
    posted_on = models.DateField(default=datetime.datetime.now().date())

views.py

def home(request):
    questions = Question.objects.all().order_by("-date")
    numbers = Question.objects.all().count()
    numbers2 = Answer.objects.all().count()
    total_users = User.objects.all().count()
    # PAGINATION ===============================
    page = request.GET.get('page', 1)
    paginator = Paginator(questions, 10)
    try:
        questions = paginator.page(page)
    except PageNotAnInteger:
        questions = paginator.page(1)
    except EmptyPage:
        questions = paginator.page(paginator.num_pages)
    # counting answers on specific questions
    empty = []
    for a in  Answer.objects.raw('SELECT id, question_id FROM main_answer'):
        idd = a.id
        question_id = (a.question_id)
        empty.append(str(question_id))
    repeatition = Counter(empty)
    i = 0
    trend_list = []
    for x in range(len(repeatition)):
        new = repeatition.most_common()[i][0]
        trend_list.append(new)
        i += 1
    trend = Question.objects.get(id=trend_list[0])
    print(trend_list)
    print(trend)
    # getting the answers to all questions in the front page
    # search the questions ============
    query= request.GET.get("q")
    if query:
        results = Question.objects.all()
        questions = results.filter(title__icontains=query)
    context = {
        'questions': questions,
        'numbers': numbers,
        'numbers2': numbers2,
        'total_users': total_users,
        'trend': trend,
    }
    return render(request, 'main/index.html', context)

따라서 필요한 것은 특정 질문에 질문과 답변 수를 표시하는 것입니다. 예를 들어, 홈페이지에는 모든 질문이 표시됩니다. 원하는 질문에 숫자를 표시하는 것입니다.

시간이란? 답변 : 답변 수.

어떻게하면 되나요? 도와주세요.


  • 이전 linux - bash 스크립트에서 다른 ssh 세션으로 시작한 프로세스를 종료 할 수 없습니다
  • 다음 python - seaborn 막 대형 차트에 레이블을 추가하는 방법