Вы бы хотели, чтобы произошло разделение интересов. Таким образом, с точки зрения моделей, должно быть Client
, Bank
и BankAccount
. На клиенте нет необходимости в отношениях «многие ко многим».
class Client(models.Model):
name = models.CharField()
class Bank(models.Model):
name = models.CharField()
class BankAccount(models.Model):
CHECKING = 'C'
SAVINGS = 'S'
TYPE = (
(CHECKING, 'Checking'),
(SAVINGS, 'Savings'),
)
client = models.ForeignKey(Client, related_name="bankAccountAsClient", on_delete=models.CASCADE)
bank = models.ForeignKey(Bank, related_name="bankAccountAsBank", on_delete=models.CASCADE)
amount = models.DecimalField(max_digits=8, decimal_places=2)
type = models.CharField(max_length=1, choices=TYPE)
Таким образом, вы можете получить банковские счета клиентов, используя BankAccount.objects.filter(client=client)