Как зарегистрировать пользовательское RangeField в postgre db с помощью django
Я попытался следовать docs и вот к чему я пришел:
from django.db import models
from django import forms
from django.contrib.postgres.fields import RangeField
from psycopg.types.range import Range
from django.utils.translation import gettext_lazy as _
class TimeRange(Range):
"""Time interval."""
pass
class TimeRangeFieldForm(BaseRangeField):
"""Form for time interval."""
default_error_messages = {'invalid': _('Enter two valid times.')}
base_field = forms.TimeField
range_type = TimeRange
class TimeRangeField(RangeField):
"""Time interval field."""
base_field = models.TimeField
range_type = TimeRange
form_field = TimeRangeFieldForm
def db_type(self, connection):
return 'timerange'
Но есть еще эта штука range_register(), и я просто не понимаю, как использовать ее в коде. А когда я пытаюсь сделать миграции, то получаю django.db.utils.ProgrammingError: type "timerange" does not exist LINE 1: ...IDENTITY, "days" smallint[7] NOT NULL, "interval" timerange ...
. Пожалуйста, помогите мне понять, как создать пользовательское поле диапазона. Также я не понимаю, как есть DateTimeRangeField и DateRangeField, но нет TimeRangeField...