Я пытаюсь воссоздать что-то в старой системе Django 1.8.19. Выяснение того, как это работало, имеет решающее значение для того, что я должен сделать, чтобы воссоздать его на поддерживаемых уровнях Django.
У меня есть модель Django с полем netfields.CidrAddressField
, которое, как мне кажется, хранится как поле CIDR в Postgress. Но всякий раз, когда я получаю QuerySet от postgres, я получаю исключение ProgrammingError.
Я предполагаю, что Postgres не может упорядочить данные в формат, понятный Python.
Спасибо
Полагаю, это связано с тем, что не установлен требуемый файл psycopg2.extras.register. Но я верю, что перепробовал их все.
Определения:
from django.db import models
import netfields
import ipaddress
class MyCIDR(models.Model):
net_cidr = netfields.CidrAddressField()
Код:
new_cidr = ipaddress.IPv4Network(u'1.2.3.4/24')
MyCIDR.objects.extra(where=['net_cidr = %s'], params=[new_cidr])
Сообщение об ошибке:
ProgrammingError: can't adapt type 'IPv4Network'
Я ожидал получить список MyCIDR
[ MyCIDR(u'1.2.3.4/24')]