2016-08-12 85 views
-4

我認爲,在POST期間,Django完全忽略了隱藏字段的值。可以要求django隱藏字段?

  1. 沒有cleaned_data該字段
  2. 沒有辦法去改變它 也是最重要的:
  3. 如果需要的原因錯誤「輸入值的列表。」即使你可以看到代碼值:<input id="id_names" name="names" type="hidden" value="[35]" />

這可能是很好的解決方案(沒有人能破解,如果他們被忽略隱藏字段),但應記錄在案,並且不應當要求。

+3

隱藏字段隱藏用戶界面。在所有其他方面,他們的行爲完全像一個正常的領域 - 這包括他們可能是必需的。另請注意,您可以使用任何包含一些開發人員工具的現代瀏覽器來編輯隱藏字段的值。這樣說,我不確定你的問題是什麼。 – knbk

+1

你的問題是'ModelMultipleChoiceField'不能和'HiddenInput'一起使用。該字段需要一個值列表,例如'[35]',但該部件正在返回一個*字符串*,例如''[35]''。隱藏'HiddenInput'這一事實並不重要,您將會遇到與'TextInput'相同的問題。您可以嘗試編寫一個與'ModelMultipleChoiceField'一起工作的隱藏小部件(我在搜索時找不到現有的部件)。大多數情況下,根本不需要隱藏字段,您可以在視圖中處理該字段。但是,您在三個問題中顯示的代碼太少,我無法分辨。 – Alasdair

+0

@knbk你所寫的全部都是重言式。我的問題是\t 假說,即隱藏字段由POST忽略,因爲它不表現爲它應該是在正常的HTML - 我的意思是,如果POST請求將被PHP處理它會正常工作。但我認爲DJANGO忽略了POST的隱藏價值。 –

回答

0

不,事實並非如此。問題是HiddenField的值始終是字符串,並且如果字段是其他類型,則結果是錯誤的類型。 「Enter a list of values」表示結果是其他類型,而不是根本沒有結果。