Skip to content

Instantly share code, notes, and snippets.

@johndiego
Created June 19, 2019 14:07
Show Gist options
  • Save johndiego/b46c25a15e389d2a59362326f9206a54 to your computer and use it in GitHub Desktop.
Save johndiego/b46c25a15e389d2a59362326f9206a54 to your computer and use it in GitHub Desktop.
class Base(BaseModels):
id = db.Column(db.Integer, primary_key=True)
tipo_cadastro = db.Column(db.Integer())
parent_id = db.Column(db.Integer, db.ForeignKey('base.id'))
produtos = db.relationship('ProdutoBase', backref='produtos', lazy=True)
produtos_individuais = db.relationship('ProdutoIndividual', backref='produtos_individual', lazy=True)
parent = db.relationship('Base', remote_side=[id], backref='filhos',lazy=True)
class ProdutoBaseModel(BaseModels):
__abstract__ = True
status = db.Column(db.String(10))
nome_identificador = db.Column(db.String(60),index=True )
class ProdutoBase(ProdutoBaseModel):
cod_produto = db.Column(db.Integer, primary_key=True,autoincrement=True)
endereco_geolocalizado = db.Column(db.String(240))
base = db.Column(db.Integer, db.ForeignKey('base.id'))
cep = db.Column(db.String(60))
nro = db.Column(db.String(60))
class ProdutoIndividual(ProdutoBaseModel):
id = db.Column(db.Integer, primary_key=True)
total = db.Column(db.String(20))
fornecedor_produto = db.Column(db.Integer, db.ForeignKey('produto_base.cod_produto'))
lass ProdutoIndvidualForm(FlaskForm):
nome_identificador = StringField('Nome comercial', validators=[DataRequired()])
total = StringField('Total Geral', validators=[DataRequired()])
fornecedor = QuerySelectField(allow_blank=True, query_factory=lambda: Base.query.filter_by(tipo_cadastro = '2').all(),get_label="nome_razao_social")
fornecedor_produto = QuerySelectField(allow_blank=True, query_factory=lambda: models.ProdutoBase.query,get_label="nome_identificador")
@bp.route('/novo',methods=['GET','POST'])
def novo_produto():
form = forms.ProdutoIndvidualForm(request.form)
if form.validate_on_submit():
data = form.data
fornecedor = data['fornecedor']
produto = data['fornecedor_produto']
# fornecedor , produto = data['fornecedor'],data['fornecedor_produto']
del data["csrf_token"]
if fornecedor is not None and produto is not None:
base = Base.query.get(fornecedor)
produto = ProdutoBase.query.get(produto)
produto = ProdutoIndividual(**data)
db.session.add(produto)
db.session.commit()
flash('{0} cadastro com sucesso'.format(g.model), 'success')
return redirect(url_for('produto.editar', id = produto.id))
return render_template('steaps-produtos.html' ,form=form)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment