[解決済み] Django IntegerField を choices=... 名で設定する。
2022-07-29 10:36:19
質問
選択肢を持つモデルフィールドがあるとき、人間が読める名前に関連付けられたいくつかの魔法の値を持っている傾向があります。Django に、これらのフィールドを値の代わりに人間が読める名前で設定する便利な方法はありますか?
このモデルを考えてみましょう。
class Thing(models.Model):
PRIORITIES = (
(0, 'Low'),
(1, 'Normal'),
(2, 'High'),
)
priority = models.IntegerField(default=0, choices=PRIORITIES)
ある時点でThingのインスタンスを持っていて、その優先順位を設定したいと思います。明らかにできることです。
thing.priority = 1
しかし、これではPRIORITIESの値-名前の対応を覚えなければなりません。これではうまくいきません。
thing.priority = 'Normal' # Throws ValueError on .save()
現在、私はこのような愚かな回避策をとっています。
thing.priority = dict((key,value) for (value,key) in Thing.PRIORITIES)['Normal']
といった具合ですが、これでは不格好です。このシナリオがいかに一般的であるかを考えると、私は誰かがより良い解決策を持っているかどうか疑問に思っていました。私が完全に見落としている、選択名によってフィールドを設定するためのフィールドメソッドがあるのでしょうか?
どのように解決するのですか?
次のようにします。 こちらをご覧ください . そうすれば、適切な整数を表す単語を使用することができます。
のようにします。
LOW = 0
NORMAL = 1
HIGH = 2
STATUS_CHOICES = (
(LOW, 'Low'),
(NORMAL, 'Normal'),
(HIGH, 'High'),
)
では、DB上では整数のままです。
使用法は次のようになります。
thing.priority = Thing.NORMAL
関連
-
[解決済み】Djangoのクエリセットフィルタリングでnot equalを行うにはどうすればよいですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] インスタンスのクラス名を取得する?
-
[解決済み] Djangoの "slug "とは何ですか?
-
[解決済み] Django のモデルで on_delete は何をするのですか?
-
[解決済み] django の OneToOneField と ForeignKey の違いは何ですか?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] バブルソートの宿題
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複
-
[解決済み] Pythonでリストが空かどうかをチェックする方法は?重複