【问题标题】:Dynamic radio buttons from database query using Flask and WTForms使用 Flask 和 WTForms 来自数据库查询的动态单选按钮
【发布时间】:2016-07-08 02:17:57
【问题描述】:

我有使用 PHP 的经验,但我是 Flask 和 Python 的新手,我需要一些简单的帮助。

我有一个数据库表,我需要一个单选按钮中的每个条目。我需要使用 WTForms 但我做不到。 id 应该是值,botname 应该是标签。

这是我的桌子:

class Probot(db.Model):
    __tablename__ = "probot"    
    id = db.Column(db.Integer, primary_key=True)
    botname = db.Column(db.String(20), unique=True, index=True)
    is_available = db.Column(db.Boolean, nullable=False, default=True)
    battery = db.Column(db.Integer)
    registered_on = db.Column(db.DateTime,default=datetime.datetime.utcnow())

我使用查询:Probot.query.all() 但如何在表单上 RadiofField 的选择属性中使用结果?

class SimpleForm(Form):
    example = RadioField('Label', choices=[])

我尝试了很多方法,但总是出错,希望能得到一些帮助。谢谢。

【问题讨论】:

    标签: python flask sqlalchemy jinja2 wtforms


    【解决方案1】:

    由于您是动态设置选项,因此在定义表单时不要声明它们。相反,在您的视图函数中,您需要像这样实例化表单(以下未经测试):

    form = SimpleForm()
    
    form.example.choices = [(probot.id, probot.botname) for probot in Probot.query.all()]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 2021-05-15
      • 2020-01-18
      • 2018-04-05
      • 2022-12-20
      • 2012-06-04
      • 2015-02-13
      相关资源
      最近更新 更多