Получение первичного ключа связанного объекта с унаследованной моделью в Django - PullRequest
3 голосов
/ 08 декабря 2011

У меня есть следующие модели:

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?

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

b имеет две атрибуты,

b.a_ptr и b.a_ptr_id

1 голос
/ 09 сентября 2012

Вы можете управлять именем, если указали OneToOneField на B с parent_link = True.Например:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...