class BaseSifrelenmisDateField(BaseSifrelenmisField):
def __init__(self, *args, **kwargs):
kwargs['max_length'] = self.max_raw_length
super(BaseSifrelenmisDateField, self).__init__(*args, **kwargs)
def getir_ic_kulanilan(self):
return 'CharField'
def formfield(self, **kwargs):
defaults = {'widget': self.form_widget}
defaults.update(kwargs)
return super(BaseSifrelenmisDateField, self).formfield(**defaults)
def to_python(self, value):
if isinstance(value, self.date_class):
date_value = value
else:
date_text = super(BaseSifrelenmisDateField, self).to_python(value)
date_value = self.date_class(*map(int, date_text.split(':')))
return date_value
# def get_prep_value(self, value):
def getir_db_ve_hazirla(self, value):
date_text = value.strftime(self.save_format)
return super(BaseSifrelenmisDateField, self).getir_db_ve_hazirla(date_text)
class SifrelenmisDateField(BaseSifrelenmisDateField):
__metaclass__ = models.SubfieldBase
form_widget = forms.DateInput
save_format = "%Y:%m:%d"
date_class = datetime.date
max_raw_length = 10 # YYYY:MM:DD
class SifrelenmisDateTimeField(BaseSifrelenmisDateField):
__metaclass__ = models.SubfieldBase
form_widget = forms.DateTimeInput
save_format = "%Y:%m:%d:%H:%M:%S:%f"
date_class = datetime.datetime
max_raw_length = 26 # YYYY:MM:DD:hh:mm:ss:micros
class BaseSifrelenmisNumberField(BaseSifrelenmisField):
def __init__(self, *args, **kwargs):
if self.max_raw_length:
kwargs['max_length'] = self.max_raw_length
super(BaseSifrelenmisNumberField, self).__init__(*args, **kwargs)
def getir_ic_kulanilan(self):
return 'CharField'
def to_python(self, value):
if isinstance(value, self.number_type):
number = value
else:
number_text = super(BaseSifrelenmisNumberField, self).to_python(value)
number = self.number_type(number_text)
return number
# def get_prep_value(self, value):
def getir_db_ve_hazirla(self, value):
number_text = self.format_string % value
return super(BaseSifrelenmisNumberField, self).getir_db_ve_hazirla(number_text)
class SifrelenmisIntField(BaseSifrelenmisNumberField):
__metaclass__ = models.SubfieldBase
max_raw_length = len(str(-sys.maxint - 1))
number_type = int
format_string = "%d"
class SifrelenmisLongField(BaseSifrelenmisNumberField):
__metaclass__ = models.SubfieldBase
max_raw_length = None # no limit
number_type = long
format_string = "%d"
def getir_ic_kulanilan(self):
return 'TextField'
class SifrelenmisFloatField(BaseSifrelenmisNumberField):
__metaclass__ = models.SubfieldBase
max_raw_length = 150
number_type = float
format_string = "%0.66f"
class PickleField(models.TextField):
__metaclass__ = models.SubfieldBase
editable = False
serialize = False
def getir_db_ve_hazirla(self, value):
return pickle.dumps(value)
def to_python(self, value):
if not isinstance(value, basestring):
return value
try:
return pickle.loads(smart_str(value))
except ValueError:
return valueile kodlarinizi sifreyebilirsiniz.kirlmasi imakansiza yakin
Standart django kod veya dosya sıfrelem(cipher)2
0
●781
- 26-08-2012, 20:21:01