1. ホーム
  2. python

[解決済み] Django モデル MultipleChoice

2023-07-05 12:46:12

質問

私は MultipleChoiceField には モデル であれば、Formsにしか使えません。

今日、私はMultiple Choicesに関連する新しいプロジェクトを分析する際に、問題に直面しました。

のようなフィールドを持ちたいと思います。 CharFieldchoices を複数選択できるようにしました。

私はこの問題を他の回で解決し CharField を作成し、フォーム内の複数の選択肢を forms.MultipleChoiceField で管理し、選択肢をカンマで区切って保存します。

このプロジェクトでは、設定の関係で上記のようなことはできず、Modelsで行う必要があるのですが、私はできれば NOT を編集する必要があります。 Django 管理フォーム どちらも フォームを使う 複数の選択肢を持つモデルフィールドが必要です

  • 誰かこのようなことをモデルで解決したことがありますか?

モデル関数の一部をオーバーライドするか、カスタムウィジェットを使うか...。よくわからないのですが、ちょっと迷っています。


編集

私は、以下のことを意識しています。 シンプル のような選択肢を持ちたい。

class MODEL(models.Model):
    MY_CHOICES = (
        ('a', 'Hola'),
        ('b', 'Hello'),
        ('c', 'Bonjour'),
        ('d', 'Boas'),
    )
    ...
    ...
    my_field = models.CharField(max_length=1, choices=MY_CHOICES)
    ...

を保存する機能を持つが 複数の選択肢 のみならず、複数の選択肢を保存する機能があります。

どのように解決するのですか?

データベースレベルでどのようにデータを保存するかを考える必要があります。これは、あなたの解決策を決定します。

おそらく、複数の値を格納するテーブルの単一のカラムが必要でしょう。たとえば、カンマを含む可能性のある文字列を格納する必要がある場合、単純にカンマ区切りにすることはできません。

しかし、おそらく、次のようなソリューションを使用するのが最善でしょう。 django-multiselectfield