Flask-Admin - 是否有更有效的方法将视图添加到 ModelView?
Flask-Admin - Is there a more efficient way to add views to ModelView?
我读了几篇文章,但这不是保存所有这些行的最佳方法:
admin = Admin(app, name='talkcode', template_mode='bootstrap3')
admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(Personal_User, db.session))
admin.add_view(ModelView(Curriculum_User, db.session))
admin.add_view(ModelView(Skills, db.session))
admin.add_view(ModelView(Question, db.session))
admin.add_view(ModelView(TagQuestion, db.session))
admin.add_view(ModelView(AnswerLong, db.session))
admin.add_view(ModelView(Snippet, db.session))
admin.add_view(ModelView(TagSnippet, db.session))
admin.add_view(ModelView(CommentSnippet, db.session))
path = os.path.join(os.path.dirname(__file__), 'static')
admin.add_view(FileAdmin(path, '/static/', name='Static Files'))
不,这是创建视图的正确方法。
对于大型项目,扩展 Admin
class 以清理您的代码是个好主意。
class _Admin(Admin):
def add_model_view(self, model):
self.add_view(ModelView(model, db.session))
def add_model_views(self, models):
for model in models:
self.add_model_view(model)
admin.add_model_views([
User, Personal_User, Curriculum_User,
Skills, Question, TagQuestion,
AnswerLong, Snippet, TagSnippet, CommentSnippet,
])
我读了几篇文章,但这不是保存所有这些行的最佳方法:
admin = Admin(app, name='talkcode', template_mode='bootstrap3')
admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(Personal_User, db.session))
admin.add_view(ModelView(Curriculum_User, db.session))
admin.add_view(ModelView(Skills, db.session))
admin.add_view(ModelView(Question, db.session))
admin.add_view(ModelView(TagQuestion, db.session))
admin.add_view(ModelView(AnswerLong, db.session))
admin.add_view(ModelView(Snippet, db.session))
admin.add_view(ModelView(TagSnippet, db.session))
admin.add_view(ModelView(CommentSnippet, db.session))
path = os.path.join(os.path.dirname(__file__), 'static')
admin.add_view(FileAdmin(path, '/static/', name='Static Files'))
不,这是创建视图的正确方法。
对于大型项目,扩展 Admin
class 以清理您的代码是个好主意。
class _Admin(Admin):
def add_model_view(self, model):
self.add_view(ModelView(model, db.session))
def add_model_views(self, models):
for model in models:
self.add_model_view(model)
admin.add_model_views([
User, Personal_User, Curriculum_User,
Skills, Question, TagQuestion,
AnswerLong, Snippet, TagSnippet, CommentSnippet,
])