Django: значение поля по умолчанию из экземпляров собственной модели

Как я могу сделать значение по умолчанию для поля, которое будет взято из существующих объектов модели?

Я попробовал это, и это не сработало:

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

Мне понятно, почему 3) и 4) не будут работать. Я могу себе представить, почему 1) не будет работать - похоже, свойства класса не могут ссылаться на свойства экземпляра (т.е. на себя). Я могу себе представить, почему 2) не будет работать - очевидно, что нет никакой ссылки на ModelA, пока интерпретатор не пройдет через весь класс.

Так как я должен подойти к этому?

Ответы на вопрос(3)

Ваш ответ на вопрос