我有以下型号:
class A(TranslatableModel):
translations = TranslatedFields(
name = models.CharField(max_length=30)
)
f = IntegerField()
class B(A):
def __init__(self, *args, **kwargs):
super(B, self).__init__(*args, **kwargs)
some_field = ...
然后我创建了一个B实例,我相信它创建了A的实例。
b = B.objects.create(some_field='aaa', f=15)
我现在如何访问与A
对象相关的模型b
的对象?有没有办法从B获得A的PK?
答案 0 :(得分:2)
b有两个属性,
b.a_ptr
和b.a_ptr_id
答案 1 :(得分:1)
如果在B上使用parent_link = True指定OneToOneField,则可以控制名称。例如:
class A(TranslatableModel):
translations = TranslatedFields(
name = models.CharField(max_length=30)
)
f = IntegerField()
class B(A):
link_back_to_A = OneToOneField(A, parent_link=True) # specify the name
some_field = ...
请参阅:https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.OneToOneField