2015-03-25 27 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

相關問題