Почему в этих двух атрибутах модели upload
, time
оценивается каждый раз Я добавляю новый экземпляр, но string
не изменяется вообще? (inUnixTime
дает мне текущий DateTime в Unix времени)Оценка значения атрибута модели Django в вызываемом
class upload(models.Model):
#...
time = models.IntegerField(default=inUnixTime)
string = models.CharField(max_length=255, default=str(inUnixTime()))
#...
def inUnixTime(t=None):
if not t:
t = datetime.datetime.now()
return int(time.mktime(t.timetuple()))
PS. Если я использую только вызываемый, делая
string = models.CharField(max_length=255, default=str(inUnixTime))
тогда я получаю адрес памяти объекта, а не время Unix в виде строки.
Спасибо заранее!
Спасибо! он работает, вы не знаете, сколько часов я потратил на это ... Большое спасибо ... Я также дам вам голосование не только за принятие ... – pebox11
Однако мне нужно отменить галочку принятие я дал вам из-за этого: https://docs.djangoproject.com/en/dev/ref/models/fields/#default, в котором говорится, что «... lambdas нельзя использовать для параметров поля, таких как default, потому что они не могут быть сериализованный миграциями ». – pebox11
Ах да, вы правы. Это изменилось в 1.7, когда были введены миграции джанго. Я исправил свой ответ. – Greg