Skip to content

Instantly share code, notes, and snippets.

@pearlus
Forked from anonymous/QuerySelectField
Last active April 14, 2016 11:06
Show Gist options
  • Save pearlus/6595603e0e9fd89601ae0ba4e5e1cd54 to your computer and use it in GitHub Desktop.
Save pearlus/6595603e0e9fd89601ae0ba4e5e1cd54 to your computer and use it in GitHub Desktop.
###FORM
def landscape_choices():
return LandscapeFormOpt.query
class ServerForm(NoCsrfForm):
landscape_name = QuerySelectField('Landscape nnname', query_factory=landscape_choices, get_label='landscape_name')
class LTestForm(Form):
server = FieldList(FormField(ServerForm, default=lambda: Server()))
submit = SubmitField('Submit')
###MODEL
class Project(db.Model):
__tablename__ = 'projects'
id = db.Column(db.Integer, primary_key=Tr
server = db.relationship('Server')
def __repr__(self):
return '<Project %r>' % self.name
class Server(db.Model):
__tablename__ = 'server'
id = db.Column(db.Integer, primary_key=True)
project_id = db.Column(db.Integer, db.ForeignKey('projects.id'))
landscape_name = db.Column(db.Integer, db.ForeignKey('landscape_form_opt.id'))
class LandscapeFormOpt(db.Model):
__tablename__ = 'landscape_form_opt'
id = db.Column(db.Integer, primary_key=True)
landscape_name = db.Column(db.Text())
server_relationship = db.relationship('Server', backref='role', lazy='dynamic')
###VIEW
@main.route('/edit_pursuit/ope-'+'<project_ope>', methods=['GET', 'POST'])
@login_required
def edit_pursuit(project_ope):
form_landscape = LTestForm(obj=project)
form_landscape.populate_obj(project)
db.session.add(project)
db.session.commit()
@pearlus
Copy link
Author

pearlus commented Apr 14, 2016

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'LandscapeFormOpt' [SQL: 'UPDATE server SET landscape_name=%(landscape_name)s, storage=%(storage)s WHERE server.id = %(server_id)s'] [parameters: {'storage': '3', 'landscape_name': app.models.LandscapeFormOpt object at 0x107c96780, 'server_id': 9}]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment