擅长:python、mysql、java
<p>另一种方法是禁用<code>DELETE</code>复选框。
此解决方案的优点是向用户提供视觉反馈,因为用户将看到一个灰显的复选框。在</p>
<pre class="lang-py prettyprint-override"><code>from django.forms.models import BaseInlineFormSet
class MyInlineFormSet(BaseInlineFormSet):
def add_fields(self, form, index):
super().add_fields(form, index)
if some_criteria_to_prevent_deletion:
form.fields['DELETE'].disabled = True
</code></pre>
<p>这段代码利用了django1.9中添加的<a href="https://docs.djangoproject.com/en/dev/ref/forms/fields/#disabled" rel="nofollow noreferrer">Field.disabled</a>属性。正如文档中所说,“即使用户篡改了提交给服务器的字段值,它也会被忽略,取而代之的是表单初始数据中的值”,因此您不需要添加更多代码来防止删除。在</p>