Skip to content

Commit 39e2165

Browse files
committed
Merge pull request jimfunk#31 from jmacul2/master
my fixes for 1.7
2 parents c3f38ed + 4401c12 commit 39e2165

File tree

4 files changed

+63
-1
lines changed

4 files changed

+63
-1
lines changed

netfields/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
from netfields.managers import NetManager
22
from netfields.fields import (InetAddressField, CidrAddressField,
33
MACAddressField)
4+
5+
default_app_config = 'netfields.apps.NetfieldsConfig'

netfields/apps.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from django.apps import AppConfig
2+
3+
from netfields.fields import CidrAddressField, InetAddressField
4+
from netfields.lookups import NetContained, NetContains, NetContainedOrEqual, NetContainsOrEquals
5+
6+
7+
class NetfieldsConfig(AppConfig):
8+
name = 'netfields'
9+
10+
CidrAddressField.register_lookup(NetContained)
11+
CidrAddressField.register_lookup(NetContains)
12+
CidrAddressField.register_lookup(NetContainedOrEqual)
13+
CidrAddressField.register_lookup(NetContainsOrEquals)
14+
15+
InetAddressField.register_lookup(NetContained)
16+
InetAddressField.register_lookup(NetContains)
17+
InetAddressField.register_lookup(NetContainedOrEqual)
18+
InetAddressField.register_lookup(NetContainsOrEquals)
19+

netfields/lookups.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from django.db.models import Lookup
2+
from django.db.models.lookups import IExact, IContains
3+
4+
class NetContains(Lookup):
5+
lookup_name = 'net_contains'
6+
7+
def as_sql(self, qn, connection):
8+
lhs, lhs_params = self.process_lhs(qn, connection)
9+
rhs, rhs_params = self.process_rhs(qn, connection)
10+
params = lhs_params + rhs_params
11+
return '%s >> %s' % (lhs, rhs), params
12+
13+
14+
class NetContained(Lookup):
15+
lookup_name = 'net_contained'
16+
17+
def as_sql(self, qn, connection):
18+
lhs, lhs_params = self.process_lhs(qn, connection)
19+
rhs, rhs_params = self.process_rhs(qn, connection)
20+
params = lhs_params + rhs_params
21+
return '%s << %s' % (lhs, rhs), params
22+
23+
24+
class NetContainsOrEquals(Lookup):
25+
lookup_name = 'net_contains_or_equals'
26+
27+
def as_sql(self, qn, connection):
28+
lhs, lhs_params = self.process_lhs(qn, connection)
29+
rhs, rhs_params = self.process_rhs(qn, connection)
30+
params = lhs_params + rhs_params
31+
return '%s >>= %s' % (lhs, rhs), params
32+
33+
class NetContainedOrEqual(Lookup):
34+
lookup_name = 'net_contained_or_equal'
35+
36+
def as_sql(self, qn, connection):
37+
lhs, lhs_params = self.process_lhs(qn, connection)
38+
rhs, rhs_params = self.process_rhs(qn, connection)
39+
params = lhs_params + rhs_params
40+
return '%s <<= %s' % (lhs, rhs), params
41+

netfields/tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414

1515
class BaseSqlTestCase(object):
16-
select = 'SELECT "table"."id", "table"."field" FROM "table" '
16+
select = u'SELECT "table"."id", "table"."field" FROM "table" '
1717

1818
def assertSqlEquals(self, qs, sql):
1919
sql = sql.replace('"table"', '"%s"' % self.table)

0 commit comments

Comments
 (0)