Если вы хотите получить длину маски от одного объекта, вы можете определить свою модель следующим образом:
from ipaddress import ip_interface
from django.db import models
from netfields import InetAddressField, CidrAddressField, NetManager
class TestModel(models.Model):
client_ip = InetAddressField(default=ip_interface('0.0.0.0/0'), store_prefix_length=True)
@property
def masklength(self):
return self.client_ip.network.prefixlen
Пример:
obj = TestModel(client_ip=ip_interface('192.168.1.0/24'))
obj.masklength # 24
Обратите внимание, что ipaddress
встроен в Python 3.3+, поэтому если вы используете более старую версию, вам придется установить this