我正在尝试使用 Flask-Menu 和 Flask-Breadcrumbs 创建一个包含导航栏的网站。装饰器的使用方式如下(Flask-Menu示例):
@app.route('/')
@menu.register_menu(app, '.', 'Home')
def index():
return tmpl_show_menu() #Some view
Run Code Online (Sandbox Code Playgroud)
但是,我想使用 MethodView 类,它最终将允许进行更复杂的操作。模板摘录:
{%- for item in current_menu.children -%}
<a href="{{ item.url}}">{{ item.text }}</a>
{%- endfor -%}
Run Code Online (Sandbox Code Playgroud)
我的代码抛出 BuildError: ('contactsApp.SiteView', {}, None)
contactsApp = Blueprint('contactsApp', __name__, template_folder='templates')
@menu.register_menu(contactsApp, '.', 'List')
class ListView(MethodView):
def get(self):
contacts = Contact.objects.all()
return render_template('contacts/list.html', contacts=contacts)
@menu.register_menu(contactsApp, '.site', 'Sites')
class SiteView(MethodView):
def get(self):
sites = Site.objects.all()
return render_template('contacts/sites.html', sites=sites)
contactsApp.add_url_rule('/', view_func=ListView.as_view('list'))
contactsApp.add_url_rule('/site/', view_func=SiteView.as_view('sites'))
Run Code Online (Sandbox Code Playgroud)
如何正确装饰可插入视图?干杯。