У пользовательского поля Django нет атрибута 'set_attributes_from_name'

У меня есть пользовательское поле для преобразования вводимой даты во временную дельту в годах, округленную в большую сторону:

class CustomField(models.Model):
    start_date = models.DateField()

    def days_to_years(self, date: timedelta):
        return math.ceil(date.days / 365)

    def save(self, *args, **kwargs):
        delta = datetime.today() - self.start_date
        self.start_date = math.ceil(delta.days / 365)
        super(CustomField, self).save(*args, **kwargs)

Которые я использую в таких моделях, как:

from django.contrib.postgres.fields import ArrayField

class Component(ComponentBase):
    years = ArrayField(
            CustomField()
    )

Когда я пытаюсь сделать миграции, возникает ошибка AttributeError: 'CustomField' object has no attribute 'set_attributes_from_name, которую я не могу отладить, потому что я еще совсем новичок в Django. Любые предложения были бы очень приветствуются :).

Если вы хотите иметь собственное пользовательское поле, оно должно быть подклассом models.Field, а не models.Model.

Вернуться на верх