SQLAlchemy - order_by on Beziehung für Join-Tabelle

8

Ich verwende deklarative SQLAlchemy und ich habe drei Modelle: Role , Permission und RolePermission . In meinem Role -Modell habe ich Folgendes:

%Vor%

Jetzt funktioniert die permissions -Deklaration einwandfrei, und die mit einer Rolle verbundenen Berechtigungen werden wie erwartet (nach Name) sortiert angezeigt. % Co_de% schlägt jedoch mit dem folgenden Fehler fehl:

  

sqlalchemy.exc.ProgrammingError: (Programmierfehler) ('42000', '[42000] [Microsoft] [ODBC SQL Server Treiber] [SQL Server] Die mehrteilige ID "ROLES.NAME" konnte nicht gebunden werden. ( 4104) (SQLExecDirectW); [42000] [Microsoft] [ODBC SQL Server-Treiber] [SQL Server] Statement (s) konnten nicht vorbereitet werden. (8180) ') Wählen Sie [ROLES_PERMISSIONS]. [ROLE_ID] AS [ROLES_PERMISSIONS_ROLE_ID] , [ROLES_PERMISSIONS]. [PERMISSION_ID] AS [ROLES_PERMISSIONS_PERMISSION_ID], [ROLES_PERMISSIONS]. [IS_DENIED] AS [ROLES_PERMISSIONS_IS_DENIED] \ nFROM [ROLES_PERMISSIONS] \ nWHERE [ROLES_PERMISSIONS]. [ROLE_ID] =? ORDER BY [ROLES]. [NAME] '(19,)

Das Problem besteht darin, dass permissionLinks nicht verknüpft ist und daher nicht nach Role sortiert werden kann. Ich habe versucht, Role.name anzugeben, aber das schien nichts zu ändern. Wie kann ich einen Join für diese Beziehung angeben, sodass ich nach einem Feld in einer der verbundenen Tabellen sortieren kann (nämlich primaryjoin=id == RolePermission.id1 )?

    
Sarah Vessels 19.07.2011, 16:00
quelle

3 Antworten

15

Ich konnte keine dieser Lösungen funktionieren lassen, aber ich fand einen einfacheren Weg.

%Vor%

Gefunden hier: Ссылка

    
Nick Woodhams 14.11.2012 10:40
quelle
6

Sie möchten das Rollenattribut des RolePermission-Objekts anordnen. Durch die Übergabe von order_by wird die Reihenfolge in der Klasse Role festgelegt.

Versuchen Sie Folgendes:

%Vor%

legt eine Reihenfolge für die Rückreferenz fest

    
Brian 28.10.2011 18:24
quelle
0

Das Problem liegt in der permissionLinks -Beziehung. Die Sortierung nach by Role.name ergibt für mich keinen Sinn.

    
Denis Otkidach 21.07.2011 09:44
quelle