How to deal with "SubfieldBase has been deprecated. Use Field.from_db_value instead." On upgrade to Django 1.9, we may now get the warning
RemovedInDjango110Warning: SubfieldBase has been deprecated. Use Field.from_db_value instead.
To fix this, you should just remove
__metaclass__ line and add
class DurationField(models.FloatField): def __init__(self, *args, **kwargs): ... def from_db_value(self, value, expression, connection, context): ... def to_python(self, value): ...
As described here: https://docs.djangoproject.com/en/1.9/ref/models/fields/#field-api-reference,
to_python(value) converts the value (can be None, string or object) into the correct Python object.
from_db_value(value, expression, connection, context) converts a value as returned by the database to a Python object.
So, both methods return Python objects, but they are used by Django in different situations.
to_python() is called by deserialization and during the
clean() method used from forms.
from_db_value() is called when the data is loaded from the database
We take the vision which comes from dreams and apply the magic of science and mathematics, adding the heritage of our profession and our knowledge to create a design.