2016-08-12 9 views
-4

隠しフィールドの値は、POST中にDjangoによって完全に無視されると思います。djangoの隠しフィールドが必要な場合がありますか?

  1. そのフィールド
  2. それを 、最も重要な変更する方法のためノーcleaned_data:「値のリストを入力し、」必要な原因がエラーした場合
  3. をあなたはコード内でその値を参照することができた場合でも:<input id="id_names" name="names" type="hidden" value="[35]" />

それは良い解決策(だれが彼らを無視している場合は隠しフィールドをハックすることはできません)かもしれないが、文書化されなければならない、と要求されるべきではありません。

+3

非表示のフィールドは、ユーザーのインターフェイスを非表示にします。他のすべての方法で、彼らは正常なフィールドのように正しく動作します。これには、必要な場合があります。また、いくつかのデベロッパーツールを含む最新のブラウザーを使用して、非表示フィールドの値を編集することもできます。それで、私はあなたの質問が何であるか正確には分かりません。 – knbk

+1

あなたの問題は、 'ModelMultipleChoiceField'が' HiddenInput'では動作しないということです。このフィールドは値のリストを期待しています(例: '[35]')が、ウィジェットは* '* [35]'などの文字列*を返しています。 'HiddenInput'が隠されているという事実は重要ではないので、' TextInput'と同じ問題が発生します。 'ModelMultipleChoiceField'で動作する隠しウィジェットを書くことができます(私が検索したときに既存のものを見つけることができませんでした)。ほとんどの場合、非表示のフィールドは必要ありません。そのフィールドをビューで処理できます。しかし、私はあなたの3つの質問にはほとんどわかりません。 – Alasdair

+0

@knbkあなたが書いたのはトートロジーです。私の質問は\t という仮説です.PHPによって正常なHTMLのように動作しないため、隠されたフィールドはPOSTによって無視されます。つまり、POST要求がPHPによって処理された場合、正常に動作します。しかし、私はDJANGOがPOSTから隠された価値を無視すると思う。 –

答えて

0

いいえ、そうではありません。問題は、HiddenFieldの値が常に文字列であり、フィールドが他のタイプの場合、結果が間違ったタイプであることです。 "Enter a list of values"は結果がまったく結果ではなく他のタイプであることを意味します。

関連する問題