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>'), )
귀찮아서 캡쳐는 생략한다.