Как отобразить ссылку в списке, когда пользователь найден в другой Django-модели

У меня есть поисковая строка со списком пользователей с гиперссылкой для одобрения заявок. Я хочу показывать ссылку Approved на любом пользователе, чья заявка уже одобрена, и ссылку Approve на не одобренной заявке. Я пробовал поместить гиперссылку в цикл for с условным оператором для проверки, но кнопка Approve отображается дважды для тех пользователей, чьи заявки не одобрены, в то время как для тех, чьи заявки одобрены, отображаются ссылки Approve и Approved. Кто-нибудь должен милостиво помочь, так как я начинающий Django, поэтому мне трудно двигаться дальше. Любой лучший способ достижения того же самого был бы очень признателен. Спасибо

Код модели:

class Fee(models.Model):
    applicant = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
    email = models.CharField(max_length=30, null=True)
    phone = models.CharField(max_length=20, null=True)
    date = models.DateTimeField(auto_now_add=True)


def __str__(self):
    return f'Payments: {self.applicant}'

class Profile(models.Model):
    applicant = models.OneToOneField(User, on_delete=models.CASCADE, null = True)
    surname = models.CharField(max_length=20, null=True)
    othernames = models.CharField(max_length=40, null=True)
    gender = models.CharField(max_length=6, choices=GENDER, blank=True, null=True)

    def __str__(self):
        return f'{self.applicant.username}-Profile'

просматривает код:

def search_applicants(request):


    #Set an Empty Dict of Context
    context = {}
    #Search Applicant Form
    searchForm = SearchApplicantForm(request.GET or None)
    payments = Fee.objects.all()

    if searchForm.is_valid():
        #Value of search form
        value = searchForm.cleaned_data['value']
        #Filter Applicant by Surname or Othernames using Q Objects
        user_filter = Q(surname__icontains = value) | Q(othernames__icontains = value)
        #Apply the Profile Object Filter
        list_submited = Profile.objects.filter(user_filter) 

    else:
        list_submited = Profile.objects.all()

    paginator = Paginator(list_submited, 5)
    page = request.GET.get('page')
    paged_list_submited = paginator.get_page(page)
    #Update context variable
    context.update({
    'list_applicants':paged_list_submited,
    'searchForm':searchForm,
    'payments':payments,

    })

    return render(request, 'user/list_applicants.html', context)

Код шаблона HTML:

<table class="table bg-white">

<thead class="bg-info text-white">

<tr>

<th scope="col">#</th>

<th scope="col">Surname</th>

<th scope="col">Othernames</th>

<th scope="col">Email</th>

<th scope="col">Phone Number</th>

<th scope="col">Select</th>

</tr> 


</thead>
                    

{% if list_applicants %}

<tbody>

{% for applicants in list_applicants %}

<tr>
                        
<td>{{ forloop.counter }}</td>
                        

<td>{{ applicants.applicant.profile.surname }}</td>
                        

<td>{{ applicants.othernames }}</td>
                        

<td>{{ applicants.applicant.email }}</td>
                        
<td>{{ applicants.applicant.profile.phone }}</td>

<th >
{% for fee in payments %}

{% if fee.applicant == applicants.applicant %}

<a class="btn btn-info btn-sm">Approved</a>

{% else %}

<a class="btn btn-info btn-sm" href="{% url 'approve-applicant' applicants.id %}">Approve</a>

{% endif %}

{% endfor %}

</th>
                      
</tr>
                      
{% endfor %}
      
</tbody>
                    
{% else %}                 

No Records Found
{% endif %}

</table>

Вы используете поле OneToOne, поэтому вам даже не нужно

  payments = Fee.objects.all()

в вашем контексте.

Все, что вам нужно, это проверить в шаблоне, что у этого пользователя есть объект Fee:

<th>


{% if  applicants.applicant.fee %}

<a class="btn btn-info btn-sm">Approved</a>

{% else %}

<a class="btn btn-info btn-sm" href="{% url 'approve-applicant' applicants.id %}">Approve</a>

{% endif %}


</th>
Вернуться на верх