私は宣言型SQLAlchemyを使用しており、Role
,Permission
、およびRolePermission
という3つのモデルがあります。私のRole
モデルでは、私は次があります。SQLAlchemy - 結合テーブルの関係のorder_by
今permissions
宣言が正常に動作し、私は(名前で)期待するような役割に関連付けられた権限は、ソートを出てきます。しかし、permissionLinks
は、次のエラーで失敗します。
sqlalchemy.exc.ProgrammingError: (ProgrammingError) ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]The multi-part identifier "ROLES.NAME" could not be bound. (4104) (SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared. (8180)') u'SELECT [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,)
問題は、それがRole.name
でソートすることはできませんのでRole
が、参加されていないことです。私はprimaryjoin=id == RolePermission.id1
と指定しようとしましたが、それは何も変えていないようです。この関係の結合を指定して、結合テーブルの1つのフィールド(つまり、Role.name
)でソートできるようにするにはどうすればよいですか?
私は与えられた権限に関連するすべての 'RolePermission'行を表示したい、と私は彼らがRole.name''の順に表示します。現在、私はDBから結果を取得した後にソートしますが、SQLAlchemyを使用して結果を得られるはずです。 'RolePermission'には' Permission'には作成日、作成者などの情報があるので、 'Permission'行だけでなく' RolePermission'行も表示します。 –
しかし、サンプルコードでは、指定された_role_に関連付けられた 'RolePermission'オブジェクトをソートしようとしています。 –
右。それぞれの 'RolePermission'に' Role'があるので、なぜ 'Role'のプロパティで' RolePermission'sをソートできないのでしょうか? –