2015-03-02 48 views
0

我有兩個sql-alchemy類。一個是Quiz,另一種是Reply針對通過外鍵過濾的模型的瓶頸管理單獨視圖

class Quiz(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    quiz_question = db.Column(db.Text) 
    quiz_date = db.Column(db.DateTime) 
    replies = db.relationship("Reply") 

class Reply(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    reply_text = db.Column(db.Text) 
    reply_date = db.Column(db.DateTime) 
    reply_mark = db.Column(db.Integer) 
    user_id = db.Column(db.Integer, db.ForeignKey('user.id')) 
    quiz_id = db.Column(db.Integer, db.ForeignKey('quiz.id')) 

我能爲每一個有CRUD功能這些模型的視圖。

我想知道什麼是最簡單的方式來創建單獨的視圖與CRUD的每個答覆有關的一個測驗(通過測驗id)。因此,相關回複列表將通過127.0.0.1/reply/<quiz_id>提供。

謝謝。

編輯:我在尋找類似this的東西,但依賴於測驗ID。

回答

0

解決此問題的最簡單方法是找到每個測驗的鏈接,並在其中應用quiz_id字段的過濾器。

class Replies_view(ModelView): 
    named_filter_urls = True 
    column_filters = ("quiz_id",) 

class Quiz_view(ModelView): 
def _question_formatter(view, context, model, name): 
    return Markup(
     "<a href='%s'>%s</a>" % (
      flask.url_for('reply.index_view', flt1_quiz_id_equals=model.id), 
      model.quiz_question 
     ) 
    ) if model.quiz_question else "" 

column_formatters = { 
    'quiz_question': _question_formatter 
}