在以下代码中,所有内容都默认为Member的索引控制器。如何设置add_view以指向成员中的特定方法?通过这种方式,我可以在下拉列表中显示一个与其相关的功能的“成员”按钮。
的观点:
admin.add_view(Members(name="Add",endpoint="add",category="Members"))
admin.add_view(Members(name="Edit",endpoint="edit",category="Members"))
admin.add_view
(Members(name="Delete",endpoint="delete",category="Members"))
管理模块:
from flask import render_template, abort
from jinja2 import TemplateNotFound
from flask.ext.admin import BaseView, expose, Admin
admin = Admin(name='Foo')
# Add administrative views here
class Members(BaseView):
@expose('/')
def index(self):
return self.render('admin/index.html')
@expose('/edit')
def edit(self):
return self.render('admin/edit.html')
@expose('/delete')
def delete(self):
pass
答案 0 :(得分:1)
不确定它会如何帮助,因为您正在创建3个相同类的实例。虽然你可以保持高度耦合的实现,但它与3个不同的类不同。
无论如何,add_view
始终将菜单项指向index
方法。但是,self._default_view
包含默认的视图方法名称(Members
类的索引)。
只是想知道它的样子:
class MyBase(BaseView):
def __init__(self, def_view, **kwargs):
self._default_view = def_view
super(MyBase, self).__init__(**kwargs)
class Members(MyBase):
@expose('/')
def index(self):
return self.render('...')
#.. other view methods
admin.add_view(Members(def_view='index', name='Add', endpoint='add'))
admin.add_view(Members(def_view='edit', name='Edit', endpoint='edit'))
# ...