gpt4 book ai didi

python - Django 1.8.2(使用Python 3.4): How is a CharField with choices stored in a MySQL table with an ENUM column?

转载 作者:行者123 更新时间:2023-11-29 22:08:36 25 4
gpt4 key购买 nike

根据a StackOverflow question ,一个答案说我可以在 Django 模型中指定一个 CharField 来模仿 MySQL ENUM 列的功能。假设我在 models.py 模块中声明了以下元组集:

HOWDY_EVERYONE = (
('0', 'How are you?'),
('1', 'How\'s your day?'),
('2', 'What are you doing here?')
)

现在我有以下模型,它只存储一个 CharField 来保存我刚刚声明的元组集:

class HowdyEveryoneModel(models.Model):
message_to_everyone = models.CharField(max_length=1, choices=HOWDY_EVERYONE, db_column='Message to Everyone')

假设我有一个 MySQL 表,它只包含一个非主键列,即“给每个人的消息”。它是 ENUM 类型,接受三个值之一,就像 HOWDY_EVERYONE 元组集中的值一样:“你好吗?”、“你今天过得怎么样?”或“你在这儿做什么?”

这是如何保存在 MySQL 数据库中“给所有人的消息”下的?它只是“0”、“1”或“2”,还是“你好吗?”、“你今天过得怎么样?”或“你在这儿做什么?” 换句话说,带有选择的 Django CharField 如何保存在 MySQL ENUM 列中?

如果无法问“你好吗?”、“今天过得怎么样?”或“你在这儿做什么?”在此 MySQL 表的“给所有人的消息”列中,当我将模型保存在 MySQL 表中时,我需要对 Django 字段执行什么操作才能将其保存为这三个值之一?

最佳答案

Django 会将您选择的元组中索引 0 上的任何内容放入数据库中。这意味着:它将是“0”、“1”或“2”。如果你希望它是“你好吗?”其他的,只需将其设置为 0 索引即可。您当然可以在第一个索引中重复它(作为标签)。

关于python - Django 1.8.2(使用Python 3.4): How is a CharField with choices stored in a MySQL table with an ENUM column?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31907049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com