A lot of the Django model field internals aren’t very well-documented, and it can be confusing as to which function is response for what.

This documents some of the functions.

Field.value_to_string

def value_to_string(self, obj: Model) -> str:
    ...

This is used to convert a model into a Unicode string (str on Python 3, unicode on Python 2), for the following parts of Django: