我有一個基本模型和一個從它繼承,在設置與此類似選擇的基類:如何從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.
根據文檔,它只是一個一對一的關係自動創建的孩子,所以我想它會讓我倒退。我想要這樣做的原因是因爲我有第三個非存檔模型,該模型具有存檔的外鍵。我希望外鍵歸檔,因爲這樣第三個模型可以與任何歸檔關聯,而不僅僅是特定的歸檔類型。
以上回答對我來說是正確的解決方案。需要注意的是,我不認爲它們必須共享相同的PK(即,如果我創建了一些不包含ArchiveB記錄的歸檔記錄,然後創建一堆ArchiveB記錄)。在這種情況下,兩個表的PK不匹配。 – rsp
是的,他們會的。基地的PK是兒童中的「OneToOneField」包含的內容。 –