У пользовательского поля 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.