Как я могу получить запись модели через ID в Django FormView для отправки в другую модель

Я новичок в Django и работаю над проектом депозита и вывода средств, где я использую FormView (представление на основе классов) для добавления депозита для клиентов.

У меня есть список клиентов с кнопкой для депозита, где я хочу, чтобы при нажатии на кнопку "Депозит" отображалась форма с некоторыми полями, например, номер счета должен быть отключен, а активным должно быть только поле формы суммы депозита. И как только форма будет отправлена, запись должна быть добавлена в таблицу депозитов для этого клиента.

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

class Customer(models.Model):
    surname = models.CharField(max_length=10, null=True)
    othernames = models.CharField(max_length=20, null=True)
    accountnumber = models.CharField(max_length=10, null=True)
    address = models.CharField(max_length=30, null=True)
    phone = models.CharField(max_length=11, null=True)
    date = models.DateTimeField(auto_now_add=True, null=True)

#Get the url path of the view
    def get_absolute_url(self):
        return reverse('customer_create', args=[self.id])

#Making Sure Django Display the name of our Models as it is without Pluralizing
    class Meta:
        verbose_name_plural = 'Customer'

#
def __str__(self):
    return f'{self.surname} {self.othernames} - {self.accountnumber}'

class Deposit(models.Model):
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE, null=True)
    staff = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    deposit_amount = models.PositiveIntegerField(null=True)
    date = models.DateTimeField(auto_now_add=True)

    def get_absolute_url(self):
        return reverse('create_account', args=[self.id])

    def __str__(self):
        return f'{self.customer} Deposited {self.deposit_amount} by {self.staff.username}'

Вот мой код для моей формы:

class CustomerDepositForm(forms.ModelForm):
#Set Read Only Field on Form
    customer = forms.CharField(widget=forms.TextInput(attrs={'readonly': 'readonly'}))
    staff = forms.CharField(widget=forms.TextInput(attrs={'readonly': 'readonly'}))
    class Meta:
       model = Deposit
       fields = ['customer','staff','deposit_amount']

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

class DepositFormView(SuccessMessageMixin, FormView):
    form_class = CustomerDepositForm
    template_name = 'dashboard/create_deposit.html'
    success_url = reverse_lazy('dashboard-deposit')
    success_message = "Deposit Added Successully"

код моей кнопки:

<th scope="row"><a class="btn btn-info btn-sm" href="{{ customer.id }}">Deposit</a></th>

Кто-нибудь, пожалуйста, помогите мне с логикой и как получить id клиента с его/ее номером счета в моей форме для отправки, иначе я получаю пустое поле отключаемой формы. Спасибо за ответ.

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