Как я могу вызывать различные поля из одной 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)
Вернуться на верх