Jef*_*eff 4 python django django-forms
我有一个内联模型formset,如果这些字段在加载页面时已经有值,我想使字段不可编辑.如果用户单击该行上的"编辑"按钮,它将变为可编辑状态(使用JavaScript)我将用可编辑的小部件替换原始小部件.我想在加载页面时做类似的事情:
for field in form.fields:
if field.value:
# display as text
else:
# display as my standard editable widget for this field
Run Code Online (Sandbox Code Playgroud)
我看到inlineformset_factory有一个叫做的论点 formfield_callback.我怀疑这可能有用,但我没有找到任何文件.任何人都可以指出一些有用的文档,以及它如何帮助我解决这个问题?
Aar*_*uyn 15
这一点也让我感到难过.希望这是你正在寻找的.
<TABLE>
<form method="post" action=".">
{{ formset.management_form }}
{% for form in formset.forms %}
{{ form.id }}
<tr>
<td>{{ form.FirstName }}</td> <!-- This is a normal, editable field -->
<td>{{ form.instance.LastName }}</td> <!-- 'instance' is your actual Django model. LastName displays the text from the last name field -->
</tr>
{% endfor %}
</form>
</TABLE>
Run Code Online (Sandbox Code Playgroud)
这个帖子有点旧,但对于任何人来说:
形式如下:
myfield=forms.CharField( widget=forms.TextInput(attrs={'class':'disabled', 'readonly':'readonly'}))
Run Code Online (Sandbox Code Playgroud)
"readonly"是一个HTML属性,使表单不可编辑."disabled"是一个CSS类,因为你需要修改默认样式,它也使jQuery更简单.
要使readonly输入在单击时可编辑,这是一个jQuery示例:
$('input.disabled').click(function(){
$(this).removeAttr('readonly').removeClass('disabled');
});
Run Code Online (Sandbox Code Playgroud)