2013-12-20 79 views
9

我想通過構建CMS來了解更多關於Flask的信息。我正在使用flask-admin添加帖子,圖片等。在flask-admin中將參數傳遞給ModelView編輯模板

我設法用ckeditor覆蓋了textarea。但我想將靜態文件夾中圖像的路徑傳遞給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_processorhttp://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