django has a way to show a ForeignKey in its parent inline.[refer]
What I need is completely inversed.
I have a navbar in my site, I only need one Menu model to control the name and url of MenuButtons under the navbar. And the number of child MenuButton is fixed to 4(would not change in future).
So,the most easy and proper way to designed my menu models is below:
class MenuButton(models.Model):
class Meta:
verbose_name = u"菜单按钮"
verbose_name_plural = u"菜单按钮"
name = models.CharField(u'名字', max_length=8)
url = models.CharField(u'链接', max_length=100)
priority = models.IntegerField(u'排序优先级', null=True, blank=True)
create_time = models.DateTimeField(u'创建时间', auto_now_add=True)
update_time = models.DateTimeField(u'更新时间', auto_now=True)
def __unicode__(self):
return self.name
class Menu(models.Model):
class Meta:
verbose_name = u"菜单"
verbose_name_plural = u"菜单"
button_1 = models.ForeignKey(MenuButton, verbose_name=u'按钮1', related_name="button_1")
button_2 = models.ForeignKey(MenuButton, verbose_name=u'按钮2', related_name="button_2")
button_3 = models.ForeignKey(MenuButton, verbose_name=u'按钮3', related_name="button_3")
button_4 = models.ForeignKey(MenuButton, verbose_name=u'按钮4', related_name="button_4")
I only want admin show one Menu.People can only change the four buttons in MenuAdmin edit form, neither delete nor add a new button.But I can't find the way with out build a custom field.
has_add_permission,has_change_permissionandhas_delete_permissionfor yourMenuButtonAdminin order to manage permissions link - cansadadeserfeliz