1 2 3 4 5 6 7 8 9 10 11 12 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
|
from django import VERSION
from django.contrib.postgres.fields import ArrayField
from django.db.models import CASCADE, ForeignKey, Model
from netfields import CidrAddressField, InetAddressField, MACAddress8Field, MACAddressField, NetManager
class InetTestModel(Model):
field = InetAddressField()
objects = NetManager()
class Meta:
db_table = 'inet'
class NullInetTestModel(Model):
field = InetAddressField(null=True)
objects = NetManager()
class Meta:
db_table = 'nullinet'
class UniqueInetTestModel(Model):
field = InetAddressField(unique=True)
objects = NetManager()
class Meta:
db_table = 'uniqueinet'
class NoPrefixInetTestModel(Model):
field = InetAddressField(store_prefix_length=False)
objects = NetManager()
class Meta:
db_table = 'noprefixinet'
class CidrTestModel(Model):
field = CidrAddressField()
objects = NetManager()
class Meta:
db_table = 'cidr'
class NullCidrTestModel(Model):
field = CidrAddressField(null=True)
objects = NetManager()
class Meta:
db_table = 'nullcidr'
class UniqueCidrTestModel(Model):
field = CidrAddressField(unique=True)
objects = NetManager()
class Meta:
db_table = 'uniquecidr'
class MACTestModel(Model):
field = MACAddressField(null=True)
objects = NetManager()
class Meta:
db_table = 'mac'
class MAC8TestModel(Model):
field = MACAddress8Field(null=True)
objects = NetManager()
class Meta:
db_table = 'mac8'
class InetArrayTestModel(Model):
field = ArrayField(InetAddressField(), blank=True, null=True)
class Meta:
db_table = 'inetarray'
class CidrArrayTestModel(Model):
field = ArrayField(CidrAddressField(), blank=True, null=True)
class Meta:
db_table = 'cidrarray'
class MACArrayTestModel(Model):
field = ArrayField(MACAddressField(), blank=True, null=True)
class Meta:
db_table = 'macarray'
class MAC8ArrayTestModel(Model):
field = ArrayField(MACAddress8Field(), blank=True, null=True)
class Meta:
db_table = 'mac8array'
class AggregateTestModel(Model):
network = CidrAddressField(blank=True, null=True, default=None)
inet = InetAddressField(blank=True, null=True, default=None)
class AggregateTestChildModel(Model):
parent = ForeignKey(
'AggregateTestModel',
related_name='children',
on_delete=CASCADE,
)
network = CidrAddressField()
inet = InetAddressField()
if VERSION >= (4, 1):
from django.db.models import F, Q, CheckConstraint
class ConstraintModel(Model):
network = CidrAddressField()
inet = InetAddressField()
class Meta:
constraints = (
CheckConstraint(
check=Q(network__net_contains=F('inet')),
name='inet_contained',
),
)
|