22
私はいくつかの選択肢からなる私のdjangoモデルにchoicefieldがあるとします。今後、既存の選択肢(オプション)を別の名前(選択肢)で変更した場合、その選択肢(オプション)を持つモデルの既存のレコードも変更されるかどうかまたは管理ページで私は手動で新しいオプションを設定する必要がありますか?DjangoモデルのChoiceField
どうすればこの問題を解決できますか?
私はいくつかの選択肢からなる私のdjangoモデルにchoicefieldがあるとします。今後、既存の選択肢(オプション)を別の名前(選択肢)で変更した場合、その選択肢(オプション)を持つモデルの既存のレコードも変更されるかどうかまたは管理ページで私は手動で新しいオプションを設定する必要がありますか?DjangoモデルのChoiceField
どうすればこの問題を解決できますか?
ChoiceFieldsはそうthe documentationから例を取るために、値としてデータベースに格納されています。
class Foo(models.Model):
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
あなたは1日、それらの名前を変更することを決定したので、もしデータベースは、「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'に変更したい場合は、 Dの使用update
:あなたは、私がこれをやって避けるだろう十分な理由を持っていない限り
Foo.objects.filter(gender = 'M').update(gender = 'H')
- あなたが同時に行われてGENDER_CHOICES
にご変更とあなたのupdate
クエリを確認する必要がありますので、。
*はい、これは翻訳を行うための愚かな方法です。