【发布时间】:2020-09-13 01:50:13
【问题描述】:
我的 PostgreSQL 数据库中有以下 ENUM:
CREATE TYPE UserType AS ENUM ('Admin','Teacher', 'Student');
CREATE TYPE CourseType AS ENUM ();
我想将其用作表中的列类型之一,但是如何在 Django 中创建此自定义字段,该字段使用 PostgreSQL 的 ENUM 类型中的值,而不仅仅是使用如下元组:
USER_TYPES = (
('A', 'Admin'),
('T', 'Teacher'),
('S', 'Student'),
)
usertype = models.CharField(max_length=1, choices=USER_TYPES)
因为这将在本地保存在 Django 项目中,而不是在数据库中。我计划在此 ENUM 中添加更多值,因此希望 Django 将此类型用作字段而不是选择。我该怎么做。
【问题讨论】:
-
据我所知,选择还没有在数据库中强制执行,因此它不会创建具有枚举值的类型。
-
这就是为什么我需要另一种方法来强制执行 ENUM 及其对数据库的值。由于值将在部署阶段添加到需要保存到数据库中的 ENUM
标签: python django postgresql django-models enums