Flask:使用具有关系的SQLalchemy模型填充WTform

Flask:使用具有关系的SQLalchemy模型填充WTform,flask,foreign-key-relationship,flask-sqlalchemy,flask-wtforms,Flask,Foreign Key Relationship,Flask Sqlalchemy,Flask Wtforms,在烧瓶应用程序中,我有一个models.py: class UserB(Base): __tablename__='users' id=Column(Integer, primary_key=True) username=Column(String(50), nullable=False, unique=True) address=relationship("AddressB", uselist=False, backref='user') class Add

在烧瓶应用程序中,我有一个models.py:

 class UserB(Base):
    __tablename__='users'
    id=Column(Integer, primary_key=True)
    username=Column(String(50), nullable=False, unique=True)
    address=relationship("AddressB", uselist=False, backref='user')

class AddressB(Base):
    __tablename__='addresses'
    id=Column(Integer, primary_key=True)
    street= Column(String(150), nullable=True)
    ...
    user_id=Column(Integer, ForeignKey('users.id'))
我想填充userF的一个实例userF:

class UserF(Form):
username = StringField(validators=[
                ])
street = TextField(validators=[
                Length(min=2, max=150)
                ])
使用包含Postgresql数据的userB的实例userB:

@app.route('/view_user_profile', methods=['GET', 'POST'])
@login_required

def view_user_profile():
    currentUserId=current_user.id

    userB=db.session.query(UserB).get(currentUserId)

    userF=UserF(request.form)

    if (request.method=='GET'):
        #I'd like to populate form with data yet in Postgresql
        userF=UserF(obj=userB)

但这样做的话,我只使用userB中的用户名和其他数据填充profileF,而不使用addressB中的street和其他数据。当然,可以一个接一个地获取userB.address.street和其他addressB字段,但如果可能的话,我更希望有一个紧凑的解决方案。

看看扩展,它支持表单对象填充期间的一对一和一对多关系。是相关文档,以及如何使其与Flask WTF配合使用。

谢谢,我将试一试。