-
-
Save pearlus/6595603e0e9fd89601ae0ba4e5e1cd54 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
###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() |
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
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1836, in call
return self.wsgi_app(environ, start_response)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functionsrule.endpoint
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask_login.py", line 792, in decorated_view
return func(_args, *_kwargs)
File "/Users/pearl/Google Drive/Python/EAH_Flask/app/main/views.py", line 184, in edit_pursuit
db.session.commit()
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/scoping.py", line 157, in do
return getattr(self.registry(), name)(_args, *_kwargs)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 801, in commit
self.transaction.commit()
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 392, in commit
self._prepare_impl()
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 372, in _prepare_impl
self.session.flush()
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2019, in flush
self._flush(objects)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2137, in _flush
transaction.rollback(_capture_exception=True)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/util/langhelpers.py", line 60, in exit
compat.reraise(exc_type, exc_value, exc_tb)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 184, in reraise
raise value
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/session.py", line 2101, in _flush
flush_context.execute()
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/unitofwork.py", line 373, in execute
rec.execute(self)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/unitofwork.py", line 532, in execute
uow
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/persistence.py", line 170, in save_obj
mapper, table, update)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/orm/persistence.py", line 706, in _emit_update_statements
execute(statement, multiparams)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 914, in execute
return meth(self, multiparams, params)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
compiled_sql, distilled_params
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
context)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception
exc_info
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 200, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 183, in reraise
raise value.with_traceback(tb)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
context)
File "/Users/pearl/EAH_Flask/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 450, in do_execute
cursor.execute(statement, parameters)
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', 'server_id': 9, 'landscape_name': <app.models.LandscapeFormOpt object at 0x1082dbda0>}]