Проверка подписи записи у каждого человека в списке утвердителей в Django

У меня установлен следующий класс модели:

class Moc(models.Model):
    .....my other fields.....

    def __str__(self):
        return self.moc_title

    def get_absolute_url(self):
        return reverse('moc_content_update', kwargs={'pk': self.pk})


class Verifier(models.Model):
    moc = models.ForeignKey(Moc, related_name='verifiers', on_delete=models.CASCADE, default='1')
    verifier_group = models.CharField(max_length=36, blank=True, null=True)    
    verifier_name = models.ForeignKey(User, blank=True, null=True, on_delete=models.CASCADE,)    
    verify_due = models.DateField(blank=True, null=True)


    def __str__(self):
        return str(self.id)

    def save(self, *args, **kwargs):
        created = not self.pk
        super().save(*args, **kwargs)
        if created:
            VerifierSignOff.objects.create(verifier=self)


class VerifierSignOff(models.Model):
    verifier = models.OneToOneField(Verifier, related_name='verifiersignoff', blank=True, null=True, on_delete=models.CASCADE)
    approve = models.BooleanField(default=False)    
    reject = models.BooleanField(default=False)
    signoff_date = models.DateField(auto_now=True)
    note = models.TextField(max_length=256, blank=True)

    def __str__(self):
        return str(self.id)

Мои представления настроены на создание экземпляра Moc, добавление верификаторов (всего 3 пользователя) с соответствующими VerifierSignOff и отображение его на моем шаблоне без каких-либо проблем.

Мой views.py:

def verify_coordinate_view(request, pk):

    moc = get_object_or_404(Moc, pk=pk)

    # I guess I need to have MOC Status logic here

    return render(request, 'moc/moc_content_verification.html', context={'pk':pk, 'moc':moc, })


def verifier_signoff_view(request, pk):
    
    verifiersignoff = VerifierSignOff.objects.get(pk=pk)
    form = VerifierSignForm
    if request.method == 'POST':
        form = VerifierSignForm(request.POST, instance=verifiersignoff)
        if form.is_valid():
            form.save(commit=False)
            if verifiersignoff.approve is True and verifiersignoff.reject is True:
                return HttpResponseForbidden('You have either APPROVE or REJECT - operation not allowed!')
            else:
                form.save()
        return redirect('verify_coordinate', pk=verifiersignoff.verifier.moc_id)
        # return redirect('index')
    else:
        return render(request, 'moc/verify_signoff.html', context={'verifiersignoff': verifiersignoff, 'form': form})

Я отображаю все на своем шаблоне, т.е. я могу добавлять/удалять своих пользователей, одобрять/отклонять запись и т.д.

Моя цель - отобразить статус моего экземпляра Moc, т.е. VERIFIED (если 3oo3 пользователя одобрили запись) или REJECTED (если кто-то из 3oo3 отклонит запись, другими словами, если какой-то пользователь отклонит запись, она станет не действительной, несмотря на то, что 2 других пользователя уже одобрили ее).

Я отображаю этот процесс на моем шаблоне, используя цикл for:

мой псевдошаблон:

{% for obj in moc.verifiers.all %}

<tr style="text-align: center>
   <td>---my sign-off / delete user---buttons</td>
   <td>{{ forloop.counter }}{{ obj.verifier_group }}</td>
   <td>{{ obj.verifier_name }}</td>
   <td>{{ obj.verify_due|date:'d M Y' }}</td>
   <td>
     <input class="form-check-input-bg" type="checkbox" value="{{ obj.verifiersignoff.approve }}" checked onclick="return false">
   </td>                                                                                                             
   <td>
     <input class="form-check-input-bg" type="checkbox" value="{{ obj.verifiersignoff.reject }}" onclick="return false">
   </td>                                                                                                                           
   <td>{{ obj.verifiersignoff.signoff_date|date:'d M Y'}}</td>                                        
   <td>{{ obj.verifiersignoff.verified_by }}</td>
   <td>{{ obj.note }}</td>
  {% empty %}
   <td colspan="8" style="WIDTH: 130px">No verifiers assigned yet...</td>

</tr>

{% endfor %}

Я могу отображать индивидуальные статусы одобрения/отклонения отдельных объектов цикла в моем шаблоне, однако я хочу отображать консолидированный СТАТУС в соответствии с моим описанием выше, т.е. что-то вроде

MOC STATUS: {{?????? I don't know how I can generate this variable in my logic ?????}} 

мой фрагмент шаблона: enter image description here

Вернуться на верх