我正在尝试创建自定义时间戳字段。Django:时间戳字符串自定义字段
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 = ....
它将适当的时间戳值存储在数据库中。但它不填充对象中的字段'f'。
如:
t1 = Table1(n="some value")
t1.f -> blank
t1.save()
t1.f -> blank.
这就是问题所在。我是否错过了一些东西,以便它不填充该字段? 请在此阐明一些。
谢谢。
谢谢krubo。这实际上帮助了我。 – MSW 2009-06-13 01:46:21