Djangoモデルの抽象基本クラスを使用して、データベースからWebサイトメニューを生成しています。私のモデルは次のようになります。
# ABSTRACT MENU
class Menu(models.Model):
position = models.IntegerField("Item Position", max_length=2, unique=False)
title_en = models.CharField("Title (English)", max_length=50)
title_es = models.CharField("Titulo (Español)", max_length=50)
url_en = models.URLField("url (English)")
url_es = models.URLField("url (Español)")
def __unicode__(self):
return self.title_en
class Meta:
abstract = True
# top (main) menu ---> inherits from MENU
class MainMenu(Menu):
class Meta:
verbose_name_plural = "Menu Items"
# submenu - for drop downs ---> inherits from MENU
class SubMenu(Menu):
main_menu = models.ForeignKey(MainMenu, null=True, blank=True)
class Meta:
verbose_name_plural = "Sub Menu Items"
次に、メニューに対してこれを行います。
menu_items = MainMenu.objects.all().select_related().order_by('position')
これは問題なく、位置順にメインメニュー項目を生成します。ただし、サブメニュー項目は順序付けられていません。サブメニュー項目も位置順に並べられていることを確認するにはどうすればよいですか?