Как выбрать базовый класс из дочернего объекта в 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 ответа
Решение
Они используют один и тот же ПК, поэтому просто назначьте это поле _id
прилагается.