﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
28851	Support Open Ranges for Range Lookup - convert None to 'infinity'	Sven R. Kunze	nobody	"Hi Dev Team,

we recently came across the following issue. We wanted to search for an open ranges using the range lookup.

{{{
Model.objects.filter(date__range=(None, now()))
Model.objects.filter(date__range=(now(), None))
}}}


Right now, we monkey-patch Django like this:

{{{
from django.db.models.lookups import Range

class OpenRange(Range):
    lookup_name = 'range'

    def as_sql(self, compiler, connection):
        lhs, lhs_params = self.process_lhs(compiler, connection)
        rhs, rhs_params = self.process_rhs(compiler, connection)
        if not rhs_params[0]:
            rhs_params[0] = '-infinity'
        if not rhs_params[1]:
            rhs_params[1] = 'infinity'
        return ""%s BETWEEN %s AND %s"" % (lhs, rhs[0], rhs[1]), rhs_params

models.DateField.register_lookup(OpenRange)
}}}


Cheers,
Sven"	New feature	closed	Database layer (models, ORM)	1.11	Normal	needsinfo			Unreviewed	0	0	0	0	0	0
