0

外部キーによる結合を含む django フォームがあります。これは非常に大きなテーブルへの外部キーです。フォームでは、ブラウザーをクラッシュさせる傾向がある大規模な選択の読み込みを防ぐために、キーストロークごとに入力されたテキストを送信する jQuery オートコンプリートを用意しました。次に、このテキストがテーブルで検索され、適切な結果が返されて表示されます。非表示の CharField が選択されると、id がその CharField に渡されます。この非表示の CharField は、ForeignKey リレーションのウィジェットです。フォームを保存しようとすると、関連するモデルのモデル インスタンスを渡す必要があるというエラーが表示されますが、これで十分です。ただし、これを行う方法がわかりません。その id を取得して を実行できますがmodel.objects.get(pk=id_from_form)、POST データをこの結果で置き換えると、単に を渡すだけなのでエラーが発生します__unicode__モデルの方法。欠けているものがあると確信していますが、それが何であるかはわかりません。

ありがとう。

4

1 に答える 1

1

CharFieldを使用して ID を保存する代わりにModelChoiceField、ウィジェットを として設定してを使用してみてくださいHiddenInput。フォームのフィールド定義は次のようになります。

mymodel = forms.ModelChoiceField(widget=forms.HiddenInput, queryset=MyModel.objects.all())
于 2012-07-13T17:07:18.417 に答える