ich benutze flask-admin und möchte eine vom list template eine function aufrufen. zur veranschaulichung habe ich ein bild mit hochgeladen. wenn ich auf den 'create site'-link klicke möchte ich eine function aufrufen. ich kann jedoch in meinem view nicht auf die variablen von meinem model zugreifen. wie stelle ich dies an. ich bin dankbar für jeden lösungs ansatz.

meine code sieht so aus:
# app.py
Code: Alles auswählen
import datetime
from flask import Flask, flash
import flask_admin as admin
from flask_mongoengine import MongoEngine
from flask_admin import expose, BaseView
from flask_admin.contrib.mongoengine import ModelView
from flask_admin.actions import action
# Create application
app = Flask(__name__)
# Create dummy secrey key so we can use sessions
app.config['SECRET_KEY'] = '123456790'
app.config['MONGODB_SETTINGS'] = {'DB': 'test_app'}
# Create models
db = MongoEngine()
db.init_app(app)
class Website(db.Document):
domain_name = db.StringField(max_length=200)
title = db.StringField(max_length=160)
meta_desc = db.StringField()
class WebsiteView(ModelView):
list_template = 'custom_list.html'
@action('create_meta', 'Create Meta', 'Are you sure you want to create meta data?')
def action_createmeta(self, ids):
return (Website.domain_name, Website.title)
# Flask views
@app.route('/')
def index():
return '<a href="/admin/">Click me to get to Admin!</a>'
if __name__ == '__main__':
# Create admin
admin = admin.Admin(app, 'Example: MongoEngine')
# Add views
admin.add_view(WebsiteView(Website))
# Start app
app.run(debug=True)
# templates/custom_list.html
Code: Alles auswählen
{% extends 'admin/model/list.html' %}
{% block body %}
<h1>Custom List View</h1>
{{ super() }}
{% endblock %}
{% block list_row_actions %}
{{ super() }}
<form class="icon" method="POST" action="/admin/website/action/">
<input id="action" name="action" value="create_meta" type="hidden">
<input name="rowid" value="{{ get_pk_value(row) }}" type="hidden">
<button onclick="return confirm('Are you sure you want to create meta data?');" title="Create Meta">
<span class="fa fa-ok icon-ok"></span>
</button>
</form>
{% endblock %}