2013-07-14 34 views
1

在Mongoengine中使用Flask-Admin,當試圖爲提交的帖子列表自定義模型視圖時,我被卡住了。 這個想法是爲每個帖子(對應於列表中的一行)添加一個單元格,以顯示在每個帖子上提交的評論數量。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> 

表格單元格留爲空。我該怎麼做呢?提前致謝 !

回答

3

據我瞭解,您嘗試創建自己的視圖,但我找不到ModelView中的任何get方法。

無論如何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