gpt4 book ai didi

django - Django 模型中的 ChoiceField

转载 作者:行者123 更新时间:2023-11-28 19:35:18 26 4
gpt4 key购买 nike

假设我的 Django 模型中有 ChoiceField,其中包含多个选项。

现在,如果我将现有的选择(选项)更改为其他名称(选择),那么模型中具有该选择(选项)的现有记录是否也会更改?我是否需要在管理页面中手动设置该新选项?

最佳答案

ChoiceFields 作为值存储在数据库中,因此以 the documentation 中的示例为例:

class Foo(models.Model):
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)

数据库将存储“M”和“F”,因此如果有一天您决定像这样重命名它们*:

class Foo(models.Model):
GENDER_CHOICES = (
('M', 'Homme'),
('F', 'Femme'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)

然后,在您使用扩展值“男”或“女”的任何地方现在都会有“男”或“女”。

如果您想自己更改值(即“M”和“F”),那么您将需要更新数据库,因此如果您想将“M”更改为“H”,那么您需要使用 update :

Foo.objects.filter(gender = 'M').update(gender = 'H')

除非你有充分的理由,否则我会避免这样做 - 因为你需要确保对 GENDER_CHOICES 的更改和你的 update 查询是同时完成的。

*是的,我知道这是一种愚蠢的翻译方式!

关于django - Django 模型中的 ChoiceField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8077840/

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