在Django中使用继承模型获取相关对象的主键
我有以下型号:在Django中使用继承模型获取相关对象的主键,django,inheritance,models,Django,Inheritance,Models,我有以下型号: 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
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)
现在如何访问与b
对象相关的模型A
的对象?有没有办法从B那里得到A的PK?B有两种态度
b.a_ptr
和b.a_ptr_id
如果在b上指定一个父链接为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 = ...
请参阅:不起作用。。。我应该把a改成父型名吗?哦,应该都是小写的。请您具体说明ptr记录在哪里?我没能在谷歌上搜索到它。我不确定它是否有文档记录(所以我想使用时要小心,这可能是一个公平的改变游戏),但看看子类实例的属性,它很容易被发现