2013-12-20 1 views
9

Ich versuche, mehr über Flask zu lernen, indem ich ein CMS erstelle. Ich benutze Kolben-Admin, um die Beiträge, Bilder usw. hinzuzufügen.Übergabe von Argumenten an die ModelView-Bearbeitungsvorlage in flask-admin

Ich habe es geschafft, Textarea mit ckeditor zu überschreiben. Aber ich möchte die Pfade der Bilder im statischen Ordner zum ckeditor image plugin weiterleiten.

Ich kann nicht herausfinden, wie Parameter an meine edit.html Vorlage übergeben werden.

Hier ist der Code:

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

Aus der Dokumentation von Kolben-admin ich gefunden habe, dass _template_args Parameter übergeben zu der Vorlage verwendet werden. Aber ich kann nicht herausfinden, wie.

Was ist der genaue Weg, das zu tun?

Antwort

10

Sie müssen die zu ändernden Ansichten überschreiben _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() 

Wenn Sie einige globale Wert Vorlagen übergeben wollen, können Sie eine context_processor (http://flask.pocoo.org/docs/templating/#context-processors) verwenden.

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

Ich versuche etwas ähnliches mit index_view zu tun, aber es funktioniert überhaupt nicht. Ich bekomme immer die Ausnahme: Ausnahme: Versuch, Admin-Ansicht zu instanziieren UserModelView ohne Standardansicht Irgendeine Idee, was los ist? –

+0

@JamieHush keine Ahnung, ich kann nicht ohne Code helfen. Es sollte funktionieren, wenn Sie 'AdminIndexView' ableiten und' index'-Funktion überschreiben. – iurisilvio

+0

AttributeError: 'Super' Objekt hat kein Attribut 'index' – jul