У меня есть базовая модель и один, который наследует от него, сходный по установке для этого:Как выбрать базовый класс от дочернего объекта в 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.
Согласно документации его просто отношения один-к-одному автоматически создается в ребенке, так что я решил, что это позволит мне идти в обратном направлении. Причина, по которой я хочу это, состоит в том, что у меня есть третья не-архивная модель, в которой есть архив Foreign Archive. Я хочу, чтобы файл foreignkey был Archive, потому что эта третья модель может относиться к любому Архиву, а не только к определенному типу Archive.
выше ответ был правильным решением для меня. Только для того, чтобы отметить, я не думаю, что они обязательно используют один и тот же PK (т. Е. Если я создал несколько архивных записей, которые не включают записи ArchiveB, а затем создают кучу записей ArchiveB). В этом случае PK для двух таблиц не совпадет. – rsp
Да, они будут. PK базы - это то, что содержит элемент OneToOneField. –