Я понимаю, что это в первую очередь Django и как он обрабатывает столбцы uuid. Однако я должен отметить, что утверждение «PostgreSQL хранит их в типе данных uuid с переносами» в лучшем случае вводит в заблуждение, если не ошибочно. Postgres сохраняет затем как тип uuid, отображает дефисы, но их можно запрашивать с дефисами или без них. ДЕМО:
create table uuid_demo( uuid_col uuid, description test) ;
-- generate uuid to use in demo
select gen_random_uuid()
-- result f76fe42f-4328-479f-a446-93307fa21c1a
insert into uuid_demo(uuid_col, description)
values ('f76fe42f-4328-479f-a446-93307fa21c1a'::uuid, 'With dashes')
, ('f76fe42f4328479fa44693307fa21c1a'::uuid, 'Without dashes');
-- with hyphens and with type cast
select *
from uuid_demo
where uuid_col = 'f76fe42f-4328-479f-a446-93307fa21c1a'::uuid;
-- withou hyphens and with type cast
select *
from uuid_demo
where uuid_col = 'f76fe42f4328479fa44693307fa21c1a'::uuid;
-- with hyphens and without type cast
select *
from uuid_demo
where uuid_col = 'f76fe42f-4328-479f-a446-93307fa21c1a';
-- without hyphens and without type cast
select *
from uuid_demo
where uuid_col = 'f76fe42f4328479fa44693307fa21c1a';
-- all 4 vereions produce the same result
drop table uuid_demo;
Так что не Postgres не может обрабатывать uuid без дефисов. В этом случае Django не может обрабатывать uuid без дефисов.