Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django中使用继承模型获取相关对象的主键_Django_Inheritance_Models - Fatal编程技术网

在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记录在哪里?我没能在谷歌上搜索到它。我不确定它是否有文档记录(所以我想使用时要小心,这可能是一个公平的改变游戏),但看看子类实例的属性,它很容易被发现