]> git.lizzy.rs Git - cheatdb.git/blobdiff - app/blueprints/packages/packages.py
Optimise SQL queries
[cheatdb.git] / app / blueprints / packages / packages.py
index a7d5793c1ecbbe3c06656726e2efd707bce98080..700fc44caa46e3be8f52942676b6d3f767bba677 100644 (file)
@@ -31,6 +31,7 @@ from wtforms import *
 from wtforms.validators import *
 from wtforms.ext.sqlalchemy.fields import QuerySelectField, QuerySelectMultipleField
 from sqlalchemy import or_, func
+from sqlalchemy.orm import joinedload, subqueryload
 
 
 @menu.register_menu(bp, ".mods", "Mods", order=11, endpoint_arguments_constructor=lambda: { 'type': 'mod' })
@@ -43,6 +44,11 @@ def list_all():
        query = qb.buildPackageQuery()
        title = qb.title
 
+       query = query.options( \
+                       joinedload(Package.license), \
+                       joinedload(Package.media_license), \
+                       subqueryload(Package.tags))
+
        if qb.lucky:
                package = query.first()
                if package: