Здесь есть пара проблем. Во-первых, если бы это работало, name
будет вычисляться один раз при запуске Django, и каждый экземпляр Aref5
получит одно и то же значение по умолчанию. Другая причина заключается в том, что попытка доступа к классу в его определении приводит к ошибке.
Аргумент default
для TextField
(или любого подкласса Field
) может быть вызываемым вместо значения, в этом случае он будет вызываться при создании нового объекта. Примерно так должно работать:
Rthink = models.TextField(max_length=2000, blank=True, default=lambda: str(Aref5.objects.latest('id').id))
Поскольку выражение, включающее Aref5
, появляется внутри тела функции, оно не вычисляется сразу.