Django: подсчет отправленных форм

Что я хотел бы сделать с моей моделью, это иметь HTML страницу, где показать моим пользователям, сколько вопросов в форме они отправили и сколько они все еще отсутствуют (у меня пять в моем оригинальном шаблоне, здесь я воспроизвожу только два), а также для администратора, чтобы увидеть, сколько пользователей в целом отправили формы, вот мой код:

**HTML**
{% extends "base.html" %}

{% block content %}
  <main>
    <div class="container">

    <div class="table-responsive text-nowrap">
    <h2>Submission</h2>
    
Total: {{ quest_done }}/2

{% if user.is_superuser %}
Total Question 1: {{ question1_count }}
Total Question 2: {{ question2_count }}
{% endif %}

    </div>
  </main>

{% endblock %}
**question.models.py**

class QuestionOne(models.Model):
    user = models.OneToOneField(UserInformation, blank=True, null=True, on_delete=models.CASCADE)
    question_1a = models.CharField(max_length=250, choices=point)
    question_2a = models.CharField(max_length=250, choices=point)
    question_3a = models.CharField(max_length=250, choices=point)
    quest_1_submitted = models.BooleanField(default=False) 
 
    def __str__(self):
        return self.name + '_question_1'

class QuestionTwo(models.Model):
    user = models.OneToOneField(UserInformation, blank=True, null=True, on_delete=models.CASCADE)
    question_1b = models.CharField(max_length=250, choices=point)
    question_2b = models.CharField(max_length=250, choices=point)
    question_3b = models.CharField(max_length=250, choices=point)
    quest_2_submitted = models.BooleanField(default=False) 
 
    def __str__(self):
        return self.name + '_question_2'
**question.views.py**

quest_done = 0
quest_count = 0

def question_one(request):   
   if request.method == 'POST':
       form = QuestionOneForm(request.POST, request.FILES)
       if form.is_valid():           
           questionnairename.quest_1_submitted = True
           question1_count = QuestionOne.objects.all().count()
           form.instance.user = request.user           
           form.save()
           messages.success(request, 'Form submitted')           
           if questionnairename.quest_1_submitted == True:
                quest_done += 1
           return redirect('home')
   else:
       form = QuestionnaireNameForm()
   return render(request, 'quest.html', {'form': form, 'quest_count': quest_count, 'question1_count': question1_count})

def question_two(request):   
   if request.method == 'POST':
       form = QuestionTwoForm(request.POST, request.FILES)
       if form.is_valid():           
           questionnairename.quest_2_submitted = True
           question2_count = QuestionTwo.objects.all().count()
           form.instance.user = request.user           
           form.save()
           messages.success(request, 'Form submitted')           
           if questionnairename.quest_2_submitted == True:
                quest_done += 1
           return redirect('home')
   else:
       form = QuestionnaireNameForm()
   return render(request, 'quest.html', {'form': form, 'quest_count': quest_count, 'question2_count': question2_count})

ОШИБКИ: local variable 'quest_done' referenced before assignment и у меня нет ошибок для переменных "question_count", но когда я пытаюсь показать это в моем html Это просто пустое место. Заранее спасибо за помощь

Вы можете создать функцию, которая проверяет для каждой модели, отправил ли пользователь форму или нет

def return_quest_done_count(user):
  count = 0
  count += 1 if QuestionOne.objects.filter(user=user,quest_1_submitted=True) else 0
  ...
  return count

Затем вы можете вызвать функцию как

def question_one(request):
   quest_done = return_quest_done_count(request.user)
   ....
Вернуться на верх