我创建了一个User
模型和Kid
模型。在儿童模式,我有:如何在Flask SQLAlchemy的两个方向上使用辅助backref工作来建立数据库关系?
parents = db.relationship('User', secondary=kids_users,
backref=db.backref('kids', lazy='dynamic'))
辅助表的定义是这样的:
kids_users = db.Table('kids_users',
db.Column('kid_id', db.Integer(), db.ForeignKey('kid.id')),
db.Column('user_id',db.Integer(), db.ForeignKey('user.id')))
而且我User
模型不包含,因为这个代码做的一切与此相关的任何东西。
这里的情况:当我查询some_kid.parents
它给我回一个很好的数组:
[<User u'[email protected]'>]
但是,当我询问周围some_user.kids
其他方式它给我回一些SQL查询:
SELECT kid.id AS kid_id, kid.first_name AS kid_first_name, kid.middle_name AS kid_middle_name, kid.last_name AS kid_last_name, kid.dob AS kid_dob, kid.profile_pic_small AS kid_profile_pic_small, kid.profile_pic_smallish AS kid_profile_pic_smallish, kid.profile_pic_med AS kid_profile_pic_med, kid.profile_pic_large AS kid_profile_pic_large, kid.gender AS kid_gender, kid.current_group AS kid_current_group, kid.status AS kid_status, kid.status_time AS kid_status_time, kid.potty_trained AS kid_potty_trained, kid.pending AS kid_pending, kid.scholarship AS kid_scholarship, kid.govt AS kid_govt, kid.extra_credit AS kid_extra_credit, kid.hold AS kid_hold, kid.school_id AS kid_school_id, kid.between_schedule_id AS kid_between_schedule_id, kid.one_for_all_schedule_id AS kid_one_for_all_schedule_id, kid.hourly_schedule_id AS kid_hourly_schedule_id, kid.calendar_schedule_id AS kid_calendar_schedule_id, kid.code AS kid_code FROM kid, kids_users
我正在尝试使用SomeForm(request.data, obj=some_user)
填充表单,并且它永远不会填充孩子select
字段,因为它不返回数组。
如何使它在两个方向上都能很好地工作?