在Django-Admin中,如何级联inlinemodeldadmin

2024-05-29 03:14:04 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有一份餐厅列表(如麦当劳等),包括菜单(如午餐菜单、晚餐菜单)、子菜单(如开胃菜、三明治等)和菜肴(安格斯汉堡、鸡肉汉堡等)

它们都由外键连接。在

有没有办法,这样在餐厅管理,我有一个表格式的菜单内联,与一个链接去编辑该菜单(在它自己的管理页面,不是内联)这样我可以显示与菜单管理员内联的子菜单。每个子菜单都有一个链接来编辑该子菜单项(在它自己的管理页面中,不是内联的),这样我就可以在线显示菜品了。在

谢谢。在


Tags: 编辑列表链接管理员格式菜单页面餐厅
2条回答

所以您想在您的MenuInline中添加一个链接到每个菜单的change_form的字段?在

这可以使用^{}字段来完成。在

首先,我将向菜单模型添加一个方法,该方法在管理中创建指向模型的change_form的链接。有关一些指针,请参见Reversing admin URLs。在

你应该得到类似的结果:

def get_menu_admin_page(self):
    from django.core.urlresolvers import reverse
    return '<a href="%s">%s</a>' % (reverse('admin:yourapp_menu_change',
                                             args=(self.pk,)), self.menu_title)

get_menu_admin_page.allow_tags = True 

现在您可以将此方法添加到您的InlineAdmin。在

^{pr2}$

现在您的TabularInline应该包含一个指向每个菜单的change_view的链接。在

如果您只想在Restaurant change视图中附加一些链接,那么实际上不需要使用inline,因为这提供了一个用于更改数据的表单。我可能会覆盖RestaurantAdmin中的change_view来获取相关菜单的列表,并将其作为一个额外的上下文传递。然后覆盖特定于模型的更改_表单.html用于呈现菜单链接的模板。在

相关问题 更多 >

    热门问题