Asi*_*sif 38 django django-models
假设我的django模型中有choicefield,它包含多个选项.现在将来,如果我用其他名称(选择)更改现有选项(选项),那么具有该选择(选项)的模型中的现有记录是否也会改变?或者在管理页面中,我需要手动设置新选项吗?
我怎样才能做到这一点?
Dom*_*ger 103
ChoiceFields作为值存储在数据库中,因此请从文档中获取示例:
class Foo(models.Model):
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
Run Code Online (Sandbox Code Playgroud)
数据库将存储'M'和'F',所以如果你有一天决定重命名这样的*:
class Foo(models.Model):
GENDER_CHOICES = (
('M', 'Homme'),
('F', 'Femme'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
Run Code Online (Sandbox Code Playgroud)
然后,在任何使用扩展值"男性"或"女性"的地方,现在都会有"男性"或"女性".
如果你想自己更改值(即'M'和'F'),那么你需要更新数据库,所以如果你想将'M'改为'H',那么你可以使用update:
Foo.objects.filter(gender = 'M').update(gender = 'H')
Run Code Online (Sandbox Code Playgroud)
除非你有充分的理由,否则我会避免这样做 - 因为你需要确保你的更改GENDER_CHOICES和update查询同时完成.
*是的,我知道这是一种愚蠢的翻译方式!
| 归档时间: |
|
| 查看次数: |
53845 次 |
| 最近记录: |