Внутри модели моего приложения я использую IntegerRangeField поля:
from django.db import models
from django.contrib.postgres.fields import IntegerRangeField
from django.contrib.postgres.validators import RangeMinValueValidator, RangeMaxValueValidator
from psycopg2.extras import NumericRange
class MyModel(models.Model):
...
field = IntegerRangeField(default=NumericRange(400, 600), validators=[
RangeMinValueValidator(1),
RangeMaxValueValidator(1000)
])
...
Атрибуты " default " используются только в пользовательском интерфейсе панели администратора и больше нигде не нужны.
Если я добавлю их после миграции, они будут работать плавно. Однако, если я добавлю их до запуска makemigrations, я получу следующее сообщение:
ValueError: Невозможно сериализовать: NumericRange (400, 600, '[)')
некоторые значения Django не может сериализовать в файлы миграции.
Я даже не хочу, чтобы значения по умолчанию были сохранены в моей базе данных PostgreSQL, я просто не хочу удалять и возвращать их каждый раз, когда я запускаю makemigrations.
Есть идеи?
(Не работало: пользовательский объект с атрибутами "нижний" и "высший", одно целое число, строка, кортеж)
Python: 3.6.6, Django: 2.1.2, PostgreSQL: 11.0