Flask-Admin Mongoengine модифицирует представление модели

Используя Flask-Admin с Mongoengine, я застрял, пытаясь настроить представление модели для списка отправленных сообщений. Идея состоит в том, чтобы добавить ячейку к каждому сообщению (соответствующую строке в списке), чтобы показать количество комментариев, отправленных к каждому сообщению.

Я добавил в класс следующий метод get:

class PostView(ModelView):

   def get(self):
       posts = Post.objects.all()
       return render_template('admin/model/list.html', posts=posts)

list.html содержит следующее:

<td>
    {% for d in posts %}
        {% with total=d.comments | length %}
            {{ total }}
        {% endwith %}
    {% endfor %}
<td>

Ячейки таблицы остаются пустыми. Что мне делать вместо этого? Заранее спасибо !


person mannaia    schedule 14.07.2013    source источник


Ответы (1)


Насколько я понимаю, вы пытаетесь создать собственное представление, но я не могу найти метод get в ModelView.

В любом случае flask-admin имеют гибкую структуру наследования. Итак, вы можете попробовать просто:

class PostView(ModelView):
    list_template = 'admin/model/posts-list.html'

templates/admin/model/posts-list.html:

{% extends 'admin/model/list.html' %}

{% block list_header %}
    {{ super() }}
    <th>Comments count</th>
{% endblock %}

{% block list_row %}
    {{ super() }}
    <td>{{ row.comments|length }}</td>
{% endblock %}
person tbicr    schedule 14.07.2013
comment
Большое спасибо, это действительно работает ... не могли бы вы объяснить {{ row.comments|length }}, как это эффективно связано с коллекцией Monngodb? И, возможно, предложите какие-либо документы по теме (создание собственных представлений после запроса к базе данных...) С уважением - person mannaia; 15.07.2013