web-dev-qa-db-ja.com

django OneToOneリバースアクセス

これらの簡単なクラスがあります

Class A(models.Model):
    ...

Class Meta(models.Model):
    a = models.OnetoOneField(A, primary_key=True)
    width = models.IntegerField(default=100)

しかし私がするとき

a = A()
meta = Meta()
a.save()
meta.a = a
meta.save()
print a.meta.width

私は得る

'A' object has no attribute 'meta'

どうしてこれなの? OneToOneを間違って使用していますか?もしそうなら、どうすれば正しい印刷ステートメントを入手できますか?

ありがとう

38
WindowsMaker

related_nameは、リバースアクセサーを呼び出します。

a = models.OneToOneField(A, related_name='foobar')
# ...
a.foobar 
59