2015-03-25 25 views
0

我想用关系数据填充表格。例如,如果我做使用关系表中的数据填充表格

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

如何'Company'和'Industry'有关吗? – dirn 2015-03-25 03:14:00

+0

公司只能有一个行业,一个行业可以被多个公司使用。基本上是多对一的关系。 – user2990084 2015-03-25 10:00:00

+0

您的模型不反映这一点。你有没有分享完整的模型或只有有限的几个领域? – dirn 2015-03-25 11:23:30

回答

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

相关问题