预填充(查询)SelectField WTForms?

2024-09-27 21:34:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用WTForms预填充一个Select字段。 我想使用数据库中的数据预填充Select字段(value和label)。在

数据库:

+----+----------+-------------------------------------+--------+
| id | category | description                         | status |
+----+----------+-------------------------------------+--------+
|  1 | Cinema   | About movies                        |      1 |
|  2 | Play     | About music.                        |      0 |
|  3 | News     | Breaking news                       |      1 |
+----+----------+-------------------------------------+--------+

我想要一个QuerySelectField等价于:

^{pr2}$

到目前为止,我已经做到了:

def getCategories():
    return Category.query.filter_by(status=1).all()

class MyForm(Form):
    category = QuerySelectField(u'Category',
            [validators.Required()],
            query_factory = getCategories
            )

标签的呈现方式如下:

<select class="form-control" id="category" name="category">
<option value="1">&lt;models.Category object at 0x105064910&gt;</option>
<option value="3">&lt;models.Category object at 0x105064d50&gt;</option>
</select>

Tags: ltid数据库valuestatusqueryselectclass
2条回答

你做得很好。QuerySelectField使用模型对象的字符串表示形式进行显示。只需将一个__str__函数添加到类别模型中,该函数将返回类别名称。在

def __str__(self):
    return self.name

我想你可以试试这个代码

categorie=QuerySelectField(query_factory=lambda:Category.query.filter_by(status=1).all(),get_label="name")

以你的形式 你可以找到更多这个很棒的旋转木马他们使用它simpe crud app with forms

相关问题 更多 >

    热门问题