Flask-Admin ModelView 没有正确处理外键(空白下拉菜单)

标签 flask flask-extensions flask-admin

flask 初学者在这里。我有一个使用以下模型的小 Flask 应用程序:

class Question(db.Model):
    __tablename__ = 'questions'
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String, nullable=False)

class Answer(db.Model):
    __tablename__ = 'answers'
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String, nullable=False)

    question_id = db.Column(db.Integer, db.ForeignKey('questions.id'))
    question = db.relationship("Question", backref="answers")

我在我的应用程序中使用以下几行启动管理员:

admin = Admin(app)
admin.add_view(ModelView(Question, db.session))
admin.add_view(ModelView(Answer, db.session))

现在在答案模型的创建表单中,我有一个用于问题的下拉框,但没有正确填充:

Answer create form with Flask-Admin

quickstart guide不包括具有外键关系的模型,尽管有一些 implementation examples available ,它们根本没有记录。我很难弄清楚这里真正需要什么以及它是如何工作的。

最佳答案

感谢友好的 IRC 用户 mattupstate 的帮助!模型需要有__str__()实现的:

class Question(db.Model):
    __tablename__ = 'questions'
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String, nullable=False)

    def __str__(self):
        return self.text

关于Flask-Admin ModelView 没有正确处理外键(空白下拉菜单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19387866/

相关文章:

python - `key_prefix` 对 flask 缓存有什么作用?

python-3.x - Flask-Admin 在数据库中存储 NULL 而不是空字符串 ('' )

flask - 使用从上一个字段中选择的值填充 WTForms 选择字段

python - 使用 FlaskClient 在测试 Flask 应用程序上获取 'Authorization' header 时出现问题

python - 错误 flask-sqlalchemy NameError : global name 'joinedload' is not defined

python - 如何使用 Flask-Security 注册 View ?

flask - 将 Web 请求上下文透明地传递给 celery 任务

python - 在 Flask-admin ModelView 中对自定义字段进行过滤和排序

python - 在 flask-admin 中将参数传递给 ModelView 编辑模板

python - Flask 应用程序中的密码保护一个网页