<div class="form-list"> <span>*登记人</span> <select {% if server_form.errors.owner %}class="input-error"{% endif %} name="owner"> {% for user in users %} <option value="{{ user.id }}" {% if server.owner.id == user.id %}selected{% endif %}>{{ user.staff_no }}</option> {% endfor %} </select> </div>如何修改为不可修改,但返回值正常的简洁方法
时间: 2024-02-14 19:06:44 浏览: 110
您可以使用Django的HiddenInput小部件来实现将“登记人”字段设置为不可编辑,但仍然希望在表单提交时能够正常返回该字段的值的简洁方法。具体而言,您可以在表单定义中将“owner”字段的小部件设置为“HiddenInput”,如下所示:
from django import forms
class YourForm(forms.Form):
owner = forms.IntegerField(widget=forms.HiddenInput)
# 其他字段的定义
然后,在表单渲染时,您可以像往常一样使用标记来显示“登记人”字段的值,如下所示:
<div class="form-list">
<span>*登记人</span>
{{ server_form.owner }}
<input type="hidden" name="owner" value="{{ server.owner.id }}">
</div>
这样,用户就无法编辑或更改此字段,但是在表单提交时仍然会将正确的值传递给服务器。同时,这种方法比之前的方法更简洁和易于维护。
相关问题
<div class="form-list"> <span>*登记人</span> <select {% if server_form.errors.owner %}class="input-error"{% endif %} name="owner"> {% for user in users %} <option value="{{ user.id }}" {% if server.owner.id == user.id %}selected{% endif %}>{{ user.staff_no }}</option> {% endfor %} </select> </div>如何修改为不可修改,但返回值正常
如果您想将此表单中的“登记人”字段设置为不可编辑,但是仍然希望在表单提交时能够正常返回该字段的值,您可以在标记与该
<div class="form-list"> <span>*网络类别</span> <select {% if server_form.errors.nettype %}class="input-error"{% endif %} name="nettype"> <option style="display: none;" disabled selected>请选择</option> {% for net_type in net_types %} <option value="{{ net_type.id }}">{{ net_type.nettype }}</option> {% endfor %} </select> </div> 以上代码修改为指定选项默认选项
要指定一个特定的选项作为默认选项,只需要在该选项的 <option>
标签中添加 selected
属性即可。例如,如果要将值为 "2" 的网络类型设为默认选项,可以将代码修改为:
<div class="form-list">
<span>*网络类别</span>
<select {% if server_form.errors.nettype %}class="input-error"{% endif %} name="nettype">
<option style="display: none;" disabled>请选择</option>
{% for net_type in net_types %}
{% if net_type.id == 2 %}
<option value="{{ net_type.id }}" selected>{{ net_type.nettype }}</option>
{% else %}
<option value="{{ net_type.id }}">{{ net_type.nettype }}</option>
{% endif %}
{% endfor %}
</select>
</div>
在这个例子中,我们使用了一个条件语句来检查当前的网络类型是否为 "2",如果是,则将其选项标记为 selected
,否则,将正常显示。其他网络类型的选项不受影响,仍然正常显示。