Django: valor padrão do campo das instâncias do auto-modelo
Como posso criar um valor padrão para um campo ser retirado dos objetos existentes de um modelo?
Eu tentei estes e não funcionou:
1)
class ModelA(models.Model):
fieldA = models.CharField(default=self.get_previous())
def get_previous(self):
return ModelA.objects.all()[0].fieldA
NameError: name 'self' is not defined
2)
class ModelA(models.Model):
fieldA = models.CharField(default=ModelA.get_previous())
@staticmethod
def get_previous():
return ModelA.objects.all()[0].fieldA
NameError: name 'ModelA' is not defined
3)
class ModelA(models.Model):
fieldA = models.CharField(default=get_previous())
def get_previous():
return ModelA.objects.all()[0].fieldA
NameError: global name 'get_previous' is not defined
4)
def get_previous():
return ModelA.objects.all()[0].fieldA
class ModelA(models.Model):
fieldA = models.CharField(default=get_previous())
NameError: global name 'ModelA' is not defined
É claro por que 3) e 4) não funcionam. Eu posso imaginar por que 1) não funciona - parece que as propriedades da classe não podem se referir às instâncias (ou seja, self). Eu posso imaginar por que 2) não funcionará - aparentemente não há referência ao ModelA até que o intérprete passe por toda a classe.
Então, como devo abordar isso?