2013-12-20 1 views
9

Я пытаюсь узнать больше о Flask, создав CMS. Я использую flask-admin для добавления сообщений, изображений и т. Д.Передача аргументов в шаблон редактирования ModelView в flask-admin

Мне удалось переопределить textarea с помощью ckeditor. Но я хочу передать пути изображений в статической папке к плагину изображения ckeditor.

Я не могу понять, как передать параметры в мой шаблон edit.html.

Вот код:

class TestAdmin(ModelView): 
    form_overrides = dict(text=forms.CustomTextAreaField) 
    create_template = 'edit.html' 
    edit_template = 'edit.html' 

Из документации колба-администратора я обнаружил, что _template_args может использоваться для передачи параметров в шаблоне. Но я не могу понять, как это сделать.

Каков точный способ сделать это?

ответ

10

Вы должны изменить вид, чтобы изменить _template_args.

class TestAdmin(ModelView): 
    form_overrides = dict(text=forms.CustomTextAreaField) 
    create_template = 'edit.html' 
    edit_template = 'edit.html' 

    @expose('/edit/', methods=('GET', 'POST')) 
    def edit_view(self): 
     self._template_args['foo'] = 'bar' 
     return super(TestAdmin, self).edit_view() 

Если вы хотите передать какое-то глобальное значение для шаблонов, вы можете использовать context_processor (http://flask.pocoo.org/docs/templating/#context-processors).

@app.context_processor 
def inject_paths(): 
    # you will be able to access {{ path1 }} and {{ path2 }} in templates 
    return dict(path1='x', path2='y') 
+1

Я пытаюсь сделать что-то подобное с index_view, но он вообще не работает. Я получаю исключение: Исключение: Попытка создать экземпляр административного представления UserModelView без представления по умолчанию Любая идея, что не так? –

+0

@JamieHush не знаю, я не могу помочь без какого-либо кода. Он должен работать, если вы подклассифицируете 'AdminIndexView' и переопределяете функцию' index'. – iurisilvio

+0

AttributeError: объект 'super' не имеет атрибута 'index' – jul

 Смежные вопросы

  • Нет связанных вопросов^_^