Я пытаюсь создать настраиваемое поле метки времени.Django: Timestamp string пользовательское поле
class TimestampKey(models.CharField):
__metaclass__ = models.SubfieldBase
def __init__(self, *args, **kwargs):
import time
kwargs['unique'] = True
kwargs['max_length'] = 20
kwargs['auto_created'] = True
kwargs['editable']=False
super(TimestampKey, self).__init__(*args, **kwargs)
def to_python(self, value) :
return value
def get_db_prep_value(self, value) :
try:
import time
t = time.localtime()
value = reduce(lambda a,b:str(a)+str(b),t)
except ValueError:
value = {}
return value
class Table1(models.Model):
f = TimestampKey(primary_key=True)
n = ....
Он сохраняет значение с соответствующей меткой времени в db. Но он не заполняет поле 'f' в объекте.
Например:
t1 = Table1(n="some value")
t1.f -> blank
t1.save()
t1.f -> blank.
Это проблема. Я что-то упустил, чтобы он не заполнил поданную? Прошу пролить свет на это.
Спасибо.
Спасибо, krubo. Это действительно помогло мне. – MSW