Как я могу получить запись модели через 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 клиента с его/ее номером счета в моей форме для отправки, иначе я получаю пустое поле отключаемой формы. Спасибо за ответ.