Вы указали здесь default
a значение .Действительно, Python сначала оценивает операнды.Таким образом, CharField
не не знает, какое выражение сгенерировало значение по умолчанию.
Однако вы можете указать вызываемый объект, например:
def <b>default_id_num</b>():
return str(int(time.time()))
class Shakf(models.Model):
name = models.CharField(max_length=255, default='', null=True)
id_num = models.CharField(max_length=50, default=<b>default_id_num</b>, unique=True)
Обратите внимание, что мы делаем not вызывает функцию default_id_num
, мы передаем ее в качестве ссылки.
При этом, однако, "странно" определить CharField
для хранения этого.Вы можете добавить отметку времени с DateTimeField
и установить ее на auto_now_add
:
# more elegant approach
class Shakf(models.Model):
name = models.CharField(max_length=255, default='', null=True)
timestamp = models.<b>DateTimeField(auto_now_add=True)</b>
Или, если это не вариант, по крайней мере, используйте IntegerField
, так как теперь вы «теряете тип»ограничения ", указав его как CharField
.