Carlos Azuaje
Carlos Azuaje

Reputation: 119

Flask-Admin - Is there a more efficient way to add views to ModelView?

I read several articles however it is not the best way to save all those lines:

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'))

Upvotes: 1

Views: 250

Answers (1)

iurisilvio
iurisilvio

Reputation: 4987

No, this is the right way to create your views.

For large projects, it is a good idea to extend the Admin class to clean up your code.

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,
])

Upvotes: 2

Related Questions