Reputation: 1
I want to call MemberRegistration Model's 'fname' and 'regino' fields to TypeCharge Model (in 'serial' field), and 'fname' and 'presentaddress' fields to BankAccount Model (in 'accholder' field). I tried Foreign Key but it can only return one combination at a time due to def str(self). Thank You..!
Here are my models:
`class MemberRegistration(models.Model):
regino = models.PositiveIntegerField(default=user_id)
fname = models.CharField(max_length=200)
presentaddress = models.CharField(max_length=500)
def __str__(self):
return str(self.regino) + " - " + self.fname
class TypeCharge(models.Model):
serial = models.ForeignKey(MemberRegistration, on_delete=models.CASCADE)
chargename = models.CharField(max_length=200)
class BankAccount(models.Model):
accholder = models.ForeignKey(MemberRegistration, on_delete=models.CASCADE)`
```
Upvotes: 0
Views: 125
Reputation: 161
You can create a separated method for each call in MemberRegistration
model and call it on your BankAccount
or TypeCharge
like that:
models.py:
class MemberRegistration(models.Model):
regino = models.PositiveIntegerField(default=user_id)
fname = models.CharField(max_length=200)
presentaddress = models.CharField(max_length=500)
def __str__(self):
return str(self.regino) + " - " + self.fname
def from_type_charge(self):
return str(self.regino) + " - " + self.fname
def from_bank_account(self):
return self.presentaddress + " - " + self.fname
class TypeCharge(models.Model):
serial = models.ForeignKey(MemberRegistration, on_delete=models.CASCADE)
chargename = models.CharField(max_length=200)
class BankAccount(models.Model):
accholder = models.ForeignKey(MemberRegistration, on_delete=models.CASCADE)
anywhere else:
type_charge = TypeCharge.objects.first() # get an instance of TypeCharge
print(type_charge.serial.from_type_charge())
bank_account = BankAccount.objects.first() # get an instance of BankAccount
print(bank_account.accholder.from_bank_account())
or you can do like this:
type_charge = TypeCharge.objects.first() # get an instance of TypeCharge
print(type_charge.serial.fname + " - " + type_charge.serial.regino)
bank_account = BankAccount.objects.first() # get an instance of BankAccount
print(bank_account.accholder.fname + " - " + bank_account.accholder.presentaddress)
Upvotes: 0