Преобразование типа Postre SQL Enum в Django Customer Field - PullRequest
3 голосов
/ 26 мая 2020

У меня в базе данных PostgreSQL есть следующий ENUM:

CREATE TYPE UserType AS ENUM ('Admin','Teacher', 'Student');

CREATE TYPE CourseType AS ENUM ();

Я хочу использовать его как один из типов столбцов в своих таблицах, но как мне создать это настраиваемое поле в Django, который использует значения типа ENUM PostgreSQL, а не просто использует кортежи, например:

USER_TYPES = (
    ('A', 'Admin'),
    ('T', 'Teacher'),
    ('S', 'Student'),
)
usertype = models.CharField(max_length=1, choices=USER_TYPES)

, поскольку они будут локально сохранены в проекте Django, а не в базе данных. Я планирую добавить больше значений в этот ENUM, поэтому хочу, чтобы Django использовал этот тип как поле, а не как варианты выбора. Как мне это сделать.

1 Ответ

0 голосов
/ 03 августа 2020

У меня такая же проблема, вы видели эти 2 ресурса?

https://schinckel.net/2019/09/18/postgres-enum-types-in-django/

https://github.com/ashleywaite/django-more/tree/master/django_enum

Кажется, они исправили эту проблему

Обновление : для Django 3 эта django-more вилка подходит мне https://github.com/AlexanderTar/django-more

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...