如何在 Django 中管理 Postgres 枚举类型?
Posted
技术标签:
【中文标题】如何在 Django 中管理 Postgres 枚举类型?【英文标题】:How to manage Postgres Enum type in Django? 【发布时间】:2021-08-21 11:08:48 【问题描述】:我曾使用django-mysql 从 Django 管理 MySQL 枚举类型。最近我在我的 Django 项目中使用 Postgres 数据库。要管理Postgres Enum,我找不到任何库。 Django 中有一个db_type() 方法来管理自定义类型。但问题是必须先在数据库中创建 Postgres 枚举,然后才能使用它。
这是 Postgres 枚举的代码示例。
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
CREATE TABLE person (
name text,
current_mood mood
);
有图书馆吗? 如果没有,我怎么能从 Django 实现 Postgres 枚举管理?
【问题讨论】:
【参考方案1】:好吧,如果架构是预先烘焙的,那么 defining the same choices and pretending the field is text-valued 就可以了。刚刚用 Postgresql 13.3 和 Django 3.2.6 / psycopg2 2.9.1 测试了这个。
否则我看到其他人使用自定义数据库架构管理变魔术 -- here 和 here。
【讨论】:
以上是关于如何在 Django 中管理 Postgres 枚举类型?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JSONField 中使用 Postgres 在 Django 中搜索带有空格的键?
如何在 django rest 框架中的 postgres JSONField 上应用过滤器?
django中所有URL的编程错误,postgres在db中找不到表?
Django admin save_model 没有在 Postgres 中推进主键