Python django.db.models.expressions.Func() Examples
The following are 4
code examples of django.db.models.expressions.Func().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
django.db.models.expressions
, or try the search function
.
Example #1
Source File: test_gis_tests_utils.py From djongo with GNU Affero General Public License v3.0 | 6 votes |
def test_mutation(raises=True): def wrapper(mutation_func): def test(test_case_instance, *args, **kwargs): class TestFunc(Func): output_field = models.IntegerField() def __init__(self): self.attribute = 'initial' super().__init__('initial', ['initial']) def as_sql(self, *args, **kwargs): mutation_func(self) return '', () if raises: msg = 'TestFunc Func was mutated during compilation.' with test_case_instance.assertRaisesMessage(AssertionError, msg): getattr(TestFunc(), 'as_' + connection.vendor)(None, None) else: getattr(TestFunc(), 'as_' + connection.vendor)(None, None) return test return wrapper
Example #2
Source File: test_gis_tests_utils.py From djongo with GNU Affero General Public License v3.0 | 6 votes |
def test_mutation(raises=True): def wrapper(mutation_func): def test(test_case_instance, *args, **kwargs): class TestFunc(Func): output_field = models.IntegerField() def __init__(self): self.attribute = 'initial' super().__init__('initial', ['initial']) def as_sql(self, *args, **kwargs): mutation_func(self) return '', () if raises: msg = 'TestFunc Func was mutated during compilation.' with test_case_instance.assertRaisesMessage(AssertionError, msg): getattr(TestFunc(), 'as_' + connection.vendor)(None, None) else: getattr(TestFunc(), 'as_' + connection.vendor)(None, None) return test return wrapper
Example #3
Source File: functions.py From GTDWeb with GNU General Public License v2.0 | 5 votes |
def as_oracle(self, compiler, connection): # we can't mix TextField (NCLOB) and CharField (NVARCHAR), so convert # all fields to NCLOB when we expect NCLOB if self.output_field.get_internal_type() == 'TextField': class ToNCLOB(Func): function = 'TO_NCLOB' expressions = [ ToNCLOB(expression) for expression in self.get_source_expressions()] self.set_source_expressions(expressions) return super(Coalesce, self).as_sql(compiler, connection)
Example #4
Source File: query_handler.py From koku with GNU Affero General Public License v3.0 | 5 votes |
def calculate_total(self, **units): """Calculate aggregated totals for the query. Args: units (dict): The units dictionary Returns: (dict) The aggregated totals for the query """ query_group_by = ["date"] + self._get_group_by() query = self.query_table.objects.filter(self.query_filter) query_data = query.annotate(**self.annotations) query_data = query_data.values(*query_group_by) aggregates = copy.deepcopy(self._mapper.report_type_map.get("aggregates", {})) if not self.parameters.parameters.get("compute_count"): # Query parameter indicates count should be removed from DB queries aggregates.pop("count", None) counts = None if "count" in aggregates: resource_ids = ( query_data.annotate(resource_id=Func(F("resource_ids"), function="unnest")) .values_list("resource_id", flat=True) .distinct() ) counts = len(resource_ids) total_query = query.aggregate(**aggregates) for unit_key, unit_value in units.items(): total_query[unit_key] = unit_value if counts: total_query["count"] = counts self._pack_data_object(total_query, **self._mapper.PACK_DEFINITIONS) return total_query