使用关系表中的数据填充表单

时间:2015-03-25 01:35:43

标签: flask wtforms flask-wtforms

我想用关系数据填充表单。例如,如果我做

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')

对此有何想法?

1 个答案:

答案 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

自动执行的功能