将 PostreSQL 枚举类型转换为 Django 客户字段

Jay*_*ari 5 python django postgresql enums django-models

我的 PostgreSQL 数据库中有以下 ENUM:

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

CREATE TYPE CourseType AS ENUM ();
Run Code Online (Sandbox Code Playgroud)

我想将其用作表中的列类型之一,但是如何在 Django 中创建此自定义字段,该字段使用 ENUM 类型的 PostgreSQL 中的值,而不仅仅是使用以下元组:

USER_TYPES = (
    ('A', 'Admin'),
    ('T', 'Teacher'),
    ('S', 'Student'),
)
usertype = models.CharField(max_length=1, choices=USER_TYPES)
Run Code Online (Sandbox Code Playgroud)

因为这将本地保存在 Django 项目中而不是数据库中。我计划在此 ENUM 中添加更多值,因此希望 Django 将此类型用作字段而不是选项。我怎么做。

Lui*_*ruz -1

我也遇到了同样的问题,请问你看过这两个资源吗?

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