Как я могу вызывать различные поля из одной Django модели в другие поля другой Django модели?
Я хочу вызвать поля 'fname' и 'regino' модели MemberRegistration в модель TypeCharge (в поле 'serial'), а поля 'fname' и 'presentaddress' в модель BankAccount (в поле 'accholder'). Я пробовал Foreign Key, но он может вернуть только одну комбинацию за раз из-за def str(self). Спасибо!!!
Вот мои модели:
`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)`
```
Вы можете создать отдельный метод для каждого вызова в MemberRegistration модели и вызвать его на вашем BankAccount или TypeCharge так:
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)
в любом другом месте:
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())
или вы можете поступить следующим образом:
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)