Как выбрать базовый класс из дочернего объекта в Django (используя наследование модели)

У меня есть базовая модель и модель, которая наследуется от нее, по настройке похожа на эту:

class Archive(models.Model):
    pub_date = models.DateField()


class ArchiveB(Archive):
    another_date = models.DateField()

Как мне получить доступ к базовому классу из дочернего класса? Например:

archiveb_instance = ArchiveB.objects.get(pk=5) 
base_instance = archiveb_instance.archive #This doesn't work.

Согласно документации, в ребенке автоматически создаются отношения один-к-одному, поэтому я решил, что это позволит мне вернуться назад. Причина, по которой я этого хочу, заключается в том, что у меня есть третья неархивная модель, которая имеет внешний ключ для Архива. Я хочу, чтобы иностранный ключ был в архиве, потому что таким образом третья модель может относиться к любому архиву, а не только к определенному типу архива.

2 ответа

Решение

Я думаю, что вы можете искать archiveb_instance.archive_ptr

Они используют один и тот же ПК, поэтому просто назначьте это поле _id прилагается.

Другие вопросы по тегам