Я использую пользовательский тип поля в проекте Django, основанный на django.db.models.IntegerField
, и этот тип используется для различных полей в модели.Он используется для хранения данных в виде целого числа в базе данных, в то время как он имеет более сложный связанный тип Python и строковое представление.Он также реализует методы value_to_string
и to_python
, которые соблюдаются при использовании, например, ./manage.py dumpdata
.
Я также представил REST API с DRF, где очень универсальный сериализатор на основе rest_framework.serializers.HyperlinkedModelSerializer
с fields
сконфигурированный как __all__
в его Meta
объекте используется.
При доступе к этому API TypeError
добавляется в rest_framework.fields.IntegerField.to_representation
, когда он пытается манипулировать вышеупомянутым типом Python через int
.
Теперь, учитывая, что для данного типа реализованы подпрограммы десериализации / сериализации, легко реализовать тип поля (в смысле DRF, как замена ранее упомянутого класса).Но как мне настроить отображение между этим полем type и единицами Django ORM только один раз без объявления типа поля (DRF) для каждого затронутого поля?Я не могу найти намека на это ни в полях сериализатора , ни в документах , ни в модуле rest_framework.fields
.