2016-08-12 158 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”表示结果是其他类型,而不是根本没有结果。