如果我想从输入中传递数据,并且还希望用户无法编辑id输入,那该怎么办?

时间:2017-08-14 06:09:26

标签: html django

这是模板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,我只是想从输入中传递数据。

3 个答案:

答案 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}}">