私はこれを理解し、モデルフィールドのキーワードself
内への参照を行う方法を考え出すのに問題を抱えていました:default
ここに私が持っているものがあります:
class Bank(models.Model):
number = models.CharField(max_length=10)
class Account(models.Model):
bank = models.ForeignKey(Bank, related_name="accounts")
number = models.CharField(max_length=20)
created = models.DateTimeField(auto_now_add=True)
creator = models.ForeignKey(User)
# This is the guy
special_code = models.CharField(max_length=30, default='%s-%s' % (self.number, self.bank.number))
そのため、クラス定義内で self にアクセスしようとしていますが、まだオブジェクトではないため、python は self がどこにあるかを認識していないため、うまくいかないようです。
私は次のようなさまざまなことを試しました:
special_code = models.CharField(max_length=30, default='%s-%s' % (number, bank.number))
しかし、この場合bank.number
、銀行は の唯一のプロパティであるため、認識されませんmodels.ForeignKey
。
Account
クラス内のメソッドも使用してみました:
def bank_number(self):
return self.bank.number
その後:
special_code = models.CharField(max_length=30, default='%s-%s' % (number, bank_number()))
まだ自己が必要なので、それはちょっとばかげていました。これを行う方法はありますか?
データベース内に番号を保存する必要があるため、次のような方法を使用しても役に立ちません。
def special_number(self):
return '%s-%s' % (self.number, self.bank.number)