0

継承が使えない状況です。Personaと aの 2 つのモデルがあるとPassportします。この例では、1 対 1 の関係があると仮定しています。

class Passport(models.Model):
    full_name = models.CharField()



class Person(models.Model):
    passport = models.OneToOneField(Passport)

ここからは、 を取得したいと思いPersonますfull_name。私のアプリケーションではPerson、一意の がなければ存在できないため、オブジェクトを介して属性Passportにアクセスするにはどうすればよいですか。最終的には、次のようなことができるようになりたいです。full_namePerson

class Person(models.Model):
    passport = models.OneToOneField(Passport)

    def __unicode__(self):
        return self.passport.full_name

これに対する簡単な解決策はDjangoですか?

4

1 に答える 1

0

はい、これを行う簡単で正しい方法はまさにあなたがしたことです: self.passport.full_name は、パスポートの属性である人のフルネームを返します。

定義したようにパスポートの ForeignKey を null にすることはできないため、self.passport は常に存在することに注意してください。

于 2013-06-12T06:29:29.573 に答える