python - 将 PostreSQL 枚举类型转换为 Django 客户字段
问题描述
我的 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 将此类型用作字段而不是选择。我怎么做。
解决方案
我遇到了同样的麻烦,你看过这两个资源吗?
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
fork 很适合我https://github.com/AlexanderTar/django-more
推荐阅读
- javascript - 使用 devs.Model 元素导入/导出 JointJS 图形
- yii - urlManager 规则中的额外斜线
- javascript - 单击不属于“关闭”按钮的单独按钮无论如何都会触发关闭事件
- c - 如何通过带有 c 的串行端口从带有 NMEA 协议的 GPS 模块获取数据
- node.js - 使用 next.js 和 express.js 以及使用会话的最佳实践是什么
- python - 断言 API 结果响应
- spring - 跨多个 WebSecurityConfigurerAdapter 共享 SecurityContextHolder
- c++ - 如何在 C++ 中使用 cin.get() 提供更多数字?
- java - 目标编辑器未在 Eclipse 中显示
- javascript - 如何锚定固定高度到a的右下角而不侵入上面的内容?