admin_file.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/env python
  2. # -*- coding=UTF-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: admin_file.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-07-02 20:24:36 (CST)
  9. # Last Update:星期六 2016-7-2 20:42:24 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask_admin.contrib.sqla import ModelView
  14. from flask import Markup, url_for
  15. from flask_admin import form
  16. from maple import db, app
  17. import os.path as op
  18. from maple.user.models import UserInfor
  19. file_path = op.join(app.static_folder, 'avatars')
  20. class ImageView(ModelView):
  21. def _list_thumbnail(view, context, model, name):
  22. if not model.avatar:
  23. return ''
  24. return Markup('<img src="%s" style="width:120px">' %
  25. url_for('upload.avatar_file',
  26. filename=model.avatar))
  27. column_formatters = {'avatar': _list_thumbnail}
  28. column_list = ['user', 'avatar']
  29. form_columns = column_list
  30. form_extra_fields = {
  31. 'avatar': form.ImageUploadField('Avatar',
  32. base_path=file_path,
  33. thumbnail_size=(100, 100, True))
  34. }
  35. def admin_file(admin):
  36. admin.add_view(ImageView(
  37. UserInfor, db.session,
  38. name='管理头像', category='管理文件'))