如何在 QuerySelectField - Flask 中获取两个标签

How get two label in QuerySelectField - Flask

我想在用户选择中使用名字和姓氏。

    def user_query():
        return User.query
    
    class User(UserMixin, db.Model):
        id          = db.Column(db.Integer, primary_key=True)
        firstname   = db.Column(db.String(20))
        lastname    = db.Column(db.String(20))

class task_add(FlaskForm):        
        user_responsible = QuerySelectField("responsible", query_factory=user_query, allow_blank=True, get_label='firstname')

在属性 get_label 中是否可以只有一列?

我认为第 属性 栏是您需要的。将此添加到您的用户模型并过滤全名。参见 https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#using-column-property-for-column-level-options

fullname = column_property(firstname + " " + lastname)
user_responsible = QuerySelectField("responsible", query_factory=user_query, allow_blank=True, get_label=lambda s: '%s %s' % (s.firstname, s.lastname))

就是你需要的。