2013-07-14 2 views
1

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

Я добавил следующий 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> 

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

ответ

3

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

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

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

шаблоны/администратор/модель/сообщений-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 %} 
+0

Спасибо много это работает на самом деле ... Не могли бы вы объяснить, '{{строка .comments | length}} ', как это эффективно относится к коллекции Monngodb? И, возможно, предложите любые документы по теме (создание собственных представлений после запроса базы данных ...) С уважением – mannaia

+0

В этом случае 'row' просто экземпляр' Post' см.: Https://github.com/mrjoes/flask-admin/ blob/master/flask_admin/templates/admin/model/list.html # L93, https://github.com/mrjoes/flask-admin/blob/master/flask_admin/model/base.py#L942 и https: // github.com/mrjoes/flask-admin/blob/master/flask_admin/contrib/mongoengine/view.py#L254. Чтобы создать собственный вид, снова просмотрите файл 'list.html', https://github.com/mrjoes/flask-admin/tree/master/examples/layout и http://flask-admin.readthedocs.org/en/latest./шаблоны /. – tbicr

+0

Отлично, я буду ближе смотреть на все это ... – mannaia