| Trees | Indices | Help |
|
|---|
|
|
1 '''
2 Created on Jul 18, 2010
3
4 @author: jnaous
5 '''
6 import logging
7 from django.db import models
8 import formfields
9 from expedient.common.utils.formfields import validate_datetime
10
11 logger = logging.getLogger("common.utils.modelfields")
12
14 """
15 A field that validates MAC addresses in XX:XX:XX:XX:XX:XX format.
16 """
17 empty_strings_allowed = False
18 description = "MAC address"
19
23
25 defaults = {'form_class': formfields.MACAddressField}
26 defaults.update(kwargs)
27 return super(MACAddressField, self).formfield(**defaults)
28
30 """
31 An IntegerField with min and max values.
32 """
34 self.max_value = kwargs.pop("max_value", None)
35 self.min_value = kwargs.pop("min_value", None)
36 super(LimitedIntegerField, self).__init__(*args, **kwargs)
37
39 defaults = {'form_class': formfields.DecOrHexIntegerField,
40 'max_value': self.max_value,
41 'min_value': self.min_value,
42 }
43 defaults.update(kwargs)
44 return super(LimitedIntegerField, self).formfield(**defaults)
45
47 """
48 A field that accepts either IP address or IP prefixes (192.168.0.0/16).
49 """
50 empty_strings_allowed = False
51 description = "IP address or prefix"
52
56
58 defaults = {'form_class': formfields.IPNetworkField}
59 defaults.update(kwargs)
60 return super(IPNetworkField, self).formfield(**defaults)
61
63 """A date time field that is limited between a min and max."""
64
65 description = "Date and time"
66
68 self.max_date = max_date
69 self.min_date = min_date
70 super(LimitedDateTimeField, self).__init__(*args, **kwargs)
71
73 super(LimitedDateTimeField, self).validate(value, model_instance)
74 validate_datetime(value, self.min_date, self.max_date)
75
77 defaults = {
78 "form_class": formfields.LimitedSplitDateTimeField,
79 "max_date": self.max_date,
80 "min_date": self.min_date,
81 }
82 defaults.update(kwargs)
83 return super(LimitedDateTimeField, self).formfield(**defaults)
84
| Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Fri Feb 18 13:10:08 2011 | http://epydoc.sourceforge.net |