【问题标题】:Flask-admin separate view for models filtered by foreign key由外键过滤的模型的 Flask-admin 单独视图
【发布时间】:2015-05-03 03:37:28
【问题描述】:

我有两个 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。

【问题讨论】:

    标签: python flask sqlalchemy flask-sqlalchemy flask-admin


    【解决方案1】:

    我发现解决此问题的最简单方法是将每个测验的链接添加到包含回复的页面,其中应用了字段 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      相关资源
      最近更新 更多