Exemplo n.º 1
0
 def _register_any_lookup(base: type[lookups.BuiltinLookup]):
     """Register array lookups under a different name."""
     cls = type(f"FesArrayAny{base.__name__}", (ArrayAnyMixin, base), {})
     ArrayField.register_lookup(cls, lookup_name=f"fes_any{base.lookup_name}")
Exemplo n.º 2
0
        if self.require_upper and value.upper is None:
            raise ValidationError("Upper datetime bound must be set")
        
    def formfield(self, **kwargs):
        defaults = {'form_class': DateTimeRangeFormField}
        defaults.update(kwargs)
        return super(DateTimeRange, self).formfield(**defaults)


class LowercaseTransform(Transform):
    lookup_name = 'array_lowercase'
    def as_sql(self, qn, connection):
        lhs, params = qn.compile(self.lhs)
        return "array_lowercase(%s)" % (lhs,), params


class SingleContainedByLookup(ContainedByLookup):
    def as_sql(self, qn, connection):
        lhs, lhs_params = self.process_lhs(qn, connection)
        rhs, rhs_params = self.process_rhs(qn, connection)
        params = lhs_params + rhs_params
        return "ARRAY[%s] <@ %s::%s[]" % (lhs, rhs, self.lhs.output_field.db_type(connection)), params


UUIDField.register_lookup(SingleContainedByLookup)
DateTimeRange.register_lookup(ContainedByLookup)
DateTimeRange.register_lookup(ContainsLookup)
DateTimeRange.register_lookup(OverlapLookup)
ArrayField.register_lookup(LowercaseTransform)
NativeArrayField.register_lookup(LowercaseTransform)
Exemplo n.º 3
0
    def formfield(self, **kwargs):
        defaults = {'form_class': DateTimeRangeFormField}
        defaults.update(kwargs)
        return super(DateTimeRange, self).formfield(**defaults)


class LowercaseTransform(Transform):
    lookup_name = 'array_lowercase'

    def as_sql(self, qn, connection):
        lhs, params = qn.compile(self.lhs)
        return "array_lowercase(%s)" % (lhs, ), params


class SingleContainedByLookup(ContainedByLookup):
    def as_sql(self, qn, connection):
        lhs, lhs_params = self.process_lhs(qn, connection)
        rhs, rhs_params = self.process_rhs(qn, connection)
        params = lhs_params + rhs_params
        return "ARRAY[%s] <@ %s::%s[]" % (
            lhs, rhs, self.lhs.output_field.db_type(connection)), params


UUIDField.register_lookup(SingleContainedByLookup)
DateTimeRange.register_lookup(ContainedByLookup)
DateTimeRange.register_lookup(ContainsLookup)
DateTimeRange.register_lookup(OverlapLookup)
ArrayField.register_lookup(LowercaseTransform)
NativeArrayField.register_lookup(LowercaseTransform)