diff --git a/specifyweb/specify/utils.py b/specifyweb/specify/utils.py index b0b2f93a070..ccc4b7508f8 100644 --- a/specifyweb/specify/utils.py +++ b/specifyweb/specify/utils.py @@ -38,7 +38,7 @@ def log_sqlalchemy_query(query): # Call this function to debug the raw SQL query generated by SQLAlchemy from sqlalchemy.dialects import mysql compiled_query = query.statement.compile(dialect=mysql.dialect(), compile_kwargs={"literal_binds": True}) - raw_sql = str(compiled_query) + raw_sql = str(compiled_query).replace('\n', ' ') + ';' logger.debug(raw_sql) # Run in the storred_queries.execute file, in the execute function, right before the return statement, line 546 # from specifyweb.specify.utils import log_sqlalchemy_query; log_sqlalchemy_query(query) diff --git a/specifyweb/stored_queries/format.py b/specifyweb/stored_queries/format.py index 034da95faa2..436385f286f 100644 --- a/specifyweb/stored_queries/format.py +++ b/specifyweb/stored_queries/format.py @@ -98,7 +98,12 @@ def getFormatterFromSchema() -> Element: if result is not None: return result - return lookup('class', specify_model.classname) + result = lookup('class', specify_model.classname) + if result is not None: + return result + + logger.warning("no dataobjformatter for %s", specify_model.classname) + return None def hasFormatterDef(self, specify_model: Table, formatter_name) -> bool: if formatter_name is None: diff --git a/specifyweb/stored_queries/queryfieldspec.py b/specifyweb/stored_queries/queryfieldspec.py index 2d80d8aeb61..feab5828fc4 100644 --- a/specifyweb/stored_queries/queryfieldspec.py +++ b/specifyweb/stored_queries/queryfieldspec.py @@ -255,7 +255,7 @@ def add_spec_to_query(self, query, formatter=None, aggregator=None, cycle_detect if self.is_relationship(): # will be formatting or aggregating related objects - if self.get_field().type == 'many-to-one': + if self.get_field().type in {'many-to-one', 'one-to-one'}: query, orm_model, table, field = self.build_join(query, self.join_path) query, orm_field = query.objectformatter.objformat(query, orm_model, formatter, cycle_detector) else: