Browse Source

Добавил тип для динамического поля

devel
bashmak 9 years ago
parent
commit
49c77c9474
  1. 22
      abonapp/models.py

22
abonapp/models.py

@ -9,11 +9,7 @@ from agent import Transmitter, AbonStruct, TariffStruct, NasFailedResult, NasNet
from tariff_app.models import Tariff
from accounts_app.models import UserProfile
from .fields import MACAddressField
from mydefs import MyGenericIPAddressField, ip2int
class LogicError(Exception):
pass
from mydefs import MyGenericIPAddressField, ip2int, LogicError, ip_addr_regex
class AbonGroup(models.Model):
@ -165,12 +161,24 @@ class ExtraFieldsModel(models.Model):
DYNAMIC_FIELD_TYPES = (
('int', _('Digital field')),
('str', _('Text field')),
('dbl', _('Floating field'))
('dbl', _('Floating field')),
('ipa', _('Ip Address'))
)
field_type = models.CharField(max_length=3, choices=DYNAMIC_FIELD_TYPES)
title = models.CharField(max_length=16, default='no title')
field_type = models.CharField(max_length=3, choices=DYNAMIC_FIELD_TYPES, default='str')
data = models.CharField(max_length=64, null=True, blank=True)
def get_regexp(self):
if self.field_type == 'int':
return r'^[+-]?\d+$'
elif self.field_type == 'dbl':
return r'^[-+]?\d+[,.]\d+$'
elif self.field_type == 'str':
return r'^[a-zA-ZА-Яа-я0-9]+$'
elif self.field_type == 'ipa':
return ip_addr_regex
def clean(self):
d = self.data
if self.field_type == 'int':

Loading…
Cancel
Save