При обновлении до Django 1.9, теперь я получаю предупреждение
RemovedInDjango110Warning: SubfieldBase has been deprecated. Use Field.from_db_value instead.
Я вижу, где возникает проблема. У меня есть некоторые пользовательские определения полей, и у меня есть __metaclass__ = models.SubfieldBase
. Например,
class DurationField(models.FloatField):
__metaclass__ = models.SubfieldBase
def __init__(self, *args, **kwargs):
...
Если утверждение __metaclass__
устарело, что я должен его заменить?
Я просто вынимаю его и добавляю метод from_db_value
, как в примере здесь: https://docs.djangoproject.com/en/1.9/howto/custom-model-fields/#converting-values-to-python-objects
И как отличаются from_db_value
и to_python
? Кажется, оба преобразуют данные базы данных в объекты Python?