您好我有一份餐馆名单(例如麦当劳等),菜单(例如午餐菜单,晚餐菜单),子菜单(例如开胃菜,Sandwidches等)和菜肴(安格斯汉堡,鸡肉汉堡等)
它们都是通过外键链接的。
有没有办法,所以在餐厅管理员,我有一个菜单作为表格内联,有一个链接去编辑该菜单(在它自己的管理页面,而不是内联),以便我可以在那里显示子菜单内联使用菜单管理员。每个子菜单都有一个链接来编辑该子菜单项(在它自己的管理页面中,而不是内联),以便我可以在线显示菜肴。
感谢。
答案 0 :(得分:0)
如果您只想添加一些链接,例如在餐厅更改视图中,您实际上不需要使用内联,因为这提供了一个用于更改数据的表单。我可能会覆盖RestaurantAdmin中的change_view以获取相关菜单的列表并将其作为extra_context传递。然后覆盖模型特定的change_form.html模板以呈现菜单链接。
答案 1 :(得分:0)
所以你想在链接到每个菜单MenuInline
的{{1}}添加字段吗?
可以使用read_only
字段完成此操作。
首先,我会在您的菜单模型中添加一个方法,该方法会在管理员中创建指向模型change_form
的链接。有关指示,请参阅Reversing admin URLs。
你应该得到类似的东西:
change_form
现在,您可以将此方法添加到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
现在,您的class MenuInline(admin.TabularInline):
model = Menu
fields = ('menu_title', 'get_menu_admin_page')
readonly_fields = ('get_menu_admin_page',)
应包含指向每个菜单TabularInline
的链接。