flask-admin을 사용하면 쉽게 admin페이지를 만들수 있다.

그런데 데이터를 볼때 일부 필드 데이터는 다른방식으로 표현하고 싶다.


예를 들면,


  * 주소는 <A> 태그를 써거 링크를 건다거나

  * 이미지는 <IMG> 태그를 써서 이미지를 관리페이지에서 본다거나..


나는 스토리지를 몽고엔진을 썻으므로 이걸 예로 들겠다.


img 필드에는 이미지 url

link 에는 링크 url 이 있다고 치자


그럼 ModelView를 구성할때

column_formatters 를 이용해 다음과 같이 구성하면 원하는대로 볼수 있다.


from flask_admin.contrib.mongoengine import ModelView

from markupsafe import Markup


class SampleView(ModelView):

    ...

column_list = ('title', 'img', 'body', 'link') column_formatters = dict(img=lambda v, c, m, p: Markup('<img style="width:100px;height:100px"" src="'+m.img+'"/>'), link=lambda v, c, m, p: Markup('<a href="'+m.link+'" target="_blink"/>이동</a>'), )



귀찮아서 캡쳐는 생략한다.

+ Recent posts