我的amin / views.py中有以下内容:
from flask import render_template
from .models import User, Role
from flask-classful import FlaskView
....
class BaseView(FlaskView):
def __init__(self, template, class_name):
self.template = template
self.target_class = ???class_name
def get_all_records(self):
return self.target_class.query.all()
class UserView(BaseView):
def __init__(self):
BaseView.__init__('admin/roles.html','User')
def index(self):
results = self.get_all_records()
return render_template(self.template, results=results)
我知道我可以在每个子类中创建一个get_results方法,但唯一可以改变的是对类的引用。 DRY建议我在基类中这样做。
我确实找到了几个允许我从类名实例化新对象的解决方案,但我需要调用类方法而不是实例方法。