独自のものを作成してTagField追加することができますModelView.。いくつかのフィールド関数をオーバーライドする必要があります。
select2 バージョン 4 を使用し、この回答よりも少し詳細なデモ アプリケーションをまとめました。
タグ フィールド:
class CustomTagField(Select2TagsField):
    widget = CustomTagWidget(multiple=True)
    def pre_validate(self, form):
        pass
    def process_formdata(self, valuelist):
        if valuelist:
            self.data = []
            for tagname in valuelist:
                rv = Tag.query.filter_by(name=tagname).first()
                if rv:
                    self.data.append(rv)
                else:
                    self.data.append(Tag(name=tagname))
        else:
            self.data = []
    def iter_choices(self):
        self.blank_text = ""
        tags = list(set([str(tag.name) for tag in Tag.query.all()]))
        model_tags = [tag.name for tag in self.object_data]
        self.choices = [[tag, tag] for tag in tags]
        # Yield empty object in order to have an empty placeholder
        yield (u'__None', self.blank_text, self.data is None)
        for value, label in self.choices:
            yield (value, label, value in model_tags)
カスタム ウィジェット: ( に似てSelect2TagsWidgetいますが、設定されていないdata-roleためform.js、通常の select2 フィールドにはなりません)
class CustomTagWidget(widgets.Select):
    def __call__(self, field, **kwargs):
        kwargs.setdefault('data-tags', '1')
        # Or call select2 in tags mode
        allow_blank = getattr(field, 'allow_blank', False)
        if allow_blank and not self.multiple:
            kwargs['data-allow-blank'] = u'1'
        return super(CustomTagWidget, self).__call__(field, **kwargs)
管理者で:
form_extra_fields = {
        'tags': CustomTagField(
            'Tags',
        ),
}
次に、管理者テンプレートをオーバーライドして、フィールドのタグ モードで select2 を呼び出します (フィールドadmin/js/form.jsのスタイルも試行します)。
$('#tags').select2({
  tags: true,
});