3
MultipleChoiceField()に初期値を正しくロードするにはどうすればよいですか?MultipleChoiceFieldがDjango Adminに格納された値を表示しない
私はCharFieldを持つDjangoモデルを持っています。これは、その値を1つ以上の特定の選択肢に制限したいので、MultipleChoiceField()としてadminでレンダリングしています。
class MyModelInlineForm(ModelForm):
my_text_field = forms.MultipleChoiceField(required=False)
def __init__(self, *args, **kwargs):
super(MyModelInlineForm, self).__init__(*args, **kwargs)
self.fields['my_text_field'].choices = get_choices(self.instance)
if self.instance:
self.fields['my_text_field'].initial = self.instance.my_text_field
class MyModelInline(admin.TabularInline):
model = MyModel
form = MyModelInlineForm
extra = 0
罰金レンダリングするようだが、私は値を選択し、選択されていない値で、新しいフォームの負荷を保存するとき:
私のコードは次のように見えます。私は値がデータベースに正しく保存されていることを確認しましたが、フォームにはロードされていません。理由はわかりません。
similarquestionsに基づいて、私のモデルの保存フィールドの値をinitial
に明示的に設定しようとしましたが、これは効果がないようです。
私は間違っていますか?
私も救うために優しいものに選択された値の私のリストを変換するためのカスタムclean_ *メソッドを追加する必要がありましたデータベースのテキストフィールドに入力します。デフォルトでは、Djangoは単にリストの文字列表現を保存しますが、後で最初の辞書では使用できません。 – Cerin