order_action
OrderAction
Bases: QueryAction
Order Actions is populated by queryset when order_by() is called.
All required params are extracted but kept raw until actual filter clause value is required -> then the action is converted into text() clause.
Extracted in order to easily change table prefixes on complex relations.
Source code in ormar/queryset/actions/order_action.py
| Python | |
|---|---|
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | |
check_if_filter_apply(target_model, alias)
Checks filter conditions to find if they apply to current join.
:param target_model: model which is now processed :type target_model: type["Model"] :param alias: prefix of the relation :type alias: str :return: result of the check :rtype: bool
Source code in ormar/queryset/actions/order_action.py
| Python | |
|---|---|
170 171 172 173 174 175 176 177 178 179 180 181 | |
flipped()
Returns a shallow copy of this order action with the sort direction
and any NULLS FIRST/NULLS LAST annotation inverted.
Used by reverse slicing to turn an ASC/DESC ordering into its mirror
image so that LIMIT N fetches rows from the tail of the original
ordering. Callers are responsible for reversing the result list in
memory afterwards so the caller-visible ordering is preserved.
:return: new OrderAction with flipped direction and nulls ordering :rtype: OrderAction
Source code in ormar/queryset/actions/order_action.py
| Python | |
|---|---|
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | |
from_model_defaults(model_cls)
classmethod
Builds the default list of OrderAction instances from a model's
OrmarConfig.orders_by (which always contains at least the primary
key, populated by the metaclass).
:param model_cls: model class whose defaults should be used :type model_cls: type["Model"] :return: list of default OrderAction instances for the model :rtype: list[OrderAction]
Source code in ormar/queryset/actions/order_action.py
| Python | |
|---|---|
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | |
get_field_name_text()
Escapes characters if it's required. Substitutes values of the models if value is a ormar Model with its pk value. Compiles the clause.
:return: complied and escaped clause :rtype: sqlalchemy.sql.elements.TextClause
Source code in ormar/queryset/actions/order_action.py
| Python | |
|---|---|
51 52 53 54 55 56 57 58 59 60 61 | |
get_min_or_max()
Used in limit sub queries where you need to use aggregated functions in order to order by columns not included in group by. For postgres bool field it's using bool_or function as aggregates does not work with this type of columns.
:return: min or max function to order :rtype: sqlalchemy.sql.elements.TextClause
Source code in ormar/queryset/actions/order_action.py
| Python | |
|---|---|
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | |
get_text_clause()
Escapes characters if it's required. Substitutes values of the models if value is a ormar Model with its pk value. Compiles the clause.
:return: complied and escaped clause :rtype: sqlalchemy.sql.elements.TextClause
Source code in ormar/queryset/actions/order_action.py
| Python | |
|---|---|
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | |