我想用关系数据填充表单。例如,如果我做
form = CreateCompany(obj=company)
这只会直接从主表中填充带有数据的表单,而不是来自关系表。
class Company(db.Model):
__tablename__ = 'companies_company'
id = db.Column(db.Integer, primary_key=True)
company_name = db.Column(db.String(100))
industry_id = db.Column(db.Integer, db.ForeignKey('industries.id'))
class Industry(db.Model):
__tablename__ = 'industries'
id = db.Column(db.Integer, primary_key=True)
industry = db.Column(db.String(100))
company_industry = db.relationship('Company', backref='company_industry', lazy='joined')
形式
class CreateCompany(Form):
company_name = StringField('Company name', [Required()])
industry = SelectField('Industry')
industry_id = HiddenField('Industry_id')
对此有何想法?
答案 0 :(得分:0)
基本上我需要在公司和行业之间建立关系。
模型中的类似内容:industry_rel = db.relationship('Industry', backref='company')
然后,我可以在CreateCompany
的表单构造函数中执行此操作。
def __init__(self, default, *args, **kwargs):
self.industry.kwargs['default'] = default #default is company.industry_rel.id
form = CreateCompany(company.industry_rel.id, obj=company)
在这种情况下,我只是手动填充obj=company