这是模板html:
<form action="/app02/user_edit-{{obj.id}}/" method="post" >
<input type="text" name="id" value="{{obj.id}}" disabled>
<input type="text" name="username" value="{{obj.username}}">
<input type="text" name="password" value="{{obj.password}}">
<input type="submit" value="Submit">
</form>
我在模板中有一个表单,并且我不希望它的输入对用户是可编辑的,因此我将其设置为disabled
,但是如果设置为disabled,
我现在无法将数据传递给操作。
在views.py
:
nid = request.POST.get('id') # there will get "None"
如果我想从输入传递数据怎么办,还希望用户无法编辑id输入?
请忽略表单标记参数obj.id
,我只是想从输入中传递数据。
答案 0 :(得分:2)
我认为而不是'禁用'尝试html的'readonly'属性,因为 readonly元素不可编辑,但在相应的表单提交时会被发送。禁用的元素不可编辑,并且不会在提交时发送。
<form action="/app02/user_edit-{{obj.id}}/" method="post" >
<input type="text" name="id" value="{{obj.id}}" readonly>
<input type="text" name="username" value="{{obj.username}}">
<input type="text" name="password" value="{{obj.password}}">
<input type="submit" value="Submit">
</form>
答案 1 :(得分:0)
使用隐藏的输入:
<form action="/app02/user_edit-{{obj.id}}/" method="post" >
<input type="hidden" name="id" value="{{obj.id}}">
<input type="text" name="username" value="{{obj.username}}">
<input type="text" name="password" value="{{obj.password}}">
<input type="submit" value="Submit">
</form>
答案 2 :(得分:0)
你真的不需要向用户显示任何对象的id。而不是文本输入,你应该使用隐藏
<input type="hidden" name="id" value="{{obj.id}}">