0
我想使用Django管理員允許基本管理頁面菜單。我有一個主菜單,我決定使用子菜單進行擴展,以便在必要時進行下拉菜單。由於子菜單項與主菜單項I具有相同的字段,但使用繼承是一個好主意,因此子菜單將繼承主菜單中的所有字段,並具有外鍵關係,如下所示:Django模型繼承數據保存在這兩個模型
# main menu
class MainMenu(models.Model):
title = models.CharField(max_length=50)
url = models.URLField()
def __unicode__(self):
return self.title
class Meta:
verbose_name_plural = "Main Menu Items"
# submenu - for drop downs
class SubMenu(MainMenu):
main_menu = models.ForeignKey(MainMenu, related_name='+', null=True, blank=True)
class Meta:
verbose_name_plural = "Sub Menu Items"
我註冊的模型與管理,但是當我在子菜單中保存項目,它不僅進入子菜單它使在主菜單中同一條目。任何ide我做錯了什麼?我是否需要以某種方式告訴Django我繼承了MainMenu的方法而不保存到它?任何幫助非常感謝。
yeps,這就是繼承在Django中的工作原理。所以你必須選擇最適合你的東西:繼承或外鍵。使用他們兩個只是沒有意義 – juliomalegria
我想我會通過避免創建基類節省一些時間,但實際上它非常快。這絕對是做到這一點的方法。感謝所有有用的輸入! –