Files
django-ram/ram/driver/models.py
Daniele Viganò d594dbe47c Rename DCC project into RAM
RAM: Railroad Assets Manager
2022-04-10 21:05:02 +02:00

42 lines
1.1 KiB
Python

from django.db import models
from django.core.exceptions import ValidationError
from ipaddress import IPv4Address, IPv4Network
from solo.models import SingletonModel
class DriverConfiguration(SingletonModel):
remote_host = models.GenericIPAddressField(
protocol="IPv4",
default="192.168.4.1"
)
remote_port = models.SmallIntegerField(default=2560)
timeout = models.SmallIntegerField(default=250)
network = models.GenericIPAddressField(
protocol="IPv4",
default="192.168.4.0",
blank=True,
null=True
)
subnet_mask = models.GenericIPAddressField(
protocol="IPv4",
default="255.255.255.0",
blank=True,
null=True
)
def __str__(self):
return "Configuration"
def clean(self, *args, **kwargs):
if self.network:
try:
IPv4Network(
"{0}/{1}".format(self.network, self.subnet_mask))
except ValueError as e:
raise ValidationError(e)
super().clean(*args, **kwargs)
class Meta:
verbose_name = "Configuration"