Как правильно использовать Django Class Based View UserPassesTestMixin в UpdateView

Я работаю над проектом Django, где у пользователей будет одна банковская запись. И я не хочу, чтобы они могли обновлять банковскую запись другого пользователя, кроме своей собственной. Я хочу использовать Django UserPassesTestMixin для выполнения этого ограничения, но я получаю ошибку 403 Forbidden каждый раз, когда пытаюсь получить доступ к UpdateView.

Вот код моих моделей:

class BankDetails(models.Model):
    applicant = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
    bank = models.CharField(max_length=30, choices=BANK, blank=True, null=True)
    account = models.CharField(max_length=20, blank=True, default=None, null = True)
    name = models.CharField(max_length=60, blank=True, null=True)
    branch = models.CharField(max_length=60, blank=True, null = True)
    date = models.DateTimeField(auto_now_add=True)

Вот код представлений на основе классов:

from django.contrib.auth.mixins import PermissionRequiredMixin, LoginRequiredMixin, UserPassesTestMixin

class UpdateBank(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
template_name = 'user/edit_bank.html'
model = BankDetails
form_class = ApplicantBankForm


def get_success_url(self):
    return reverse_lazy('bank-detail',kwargs={'pk': self.get_object().id})

def test_func(self):
    return self.get_object().applicant_id == self.request.user.pk 


class BankDetailView(LoginRequiredMixin, DetailView):
template_name = 'user/bank_detail.html'
model = BankDetails

def get_success_url(self):
    return reverse_lazy('app-submit', kwargs = {'pk' : self.get_object().id})

Прошу кого-нибудь помочь. Спасибо в ожидании вашего ответа.

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