擅长:python、mysql、java
<p>扩展DataGreed的答案,我创建了一个Mixin,允许您在<code>Meta</code>类上指定一个<code>fields_required</code>变量,如下所示:</p>
<pre><code>class MyForm(RequiredFieldsMixin, ModelForm):
class Meta:
model = MyModel
fields = ['field1', 'field2']
fields_required = ['field1']
</code></pre>
<p>这里是:</p>
<pre><code>class RequiredFieldsMixin():
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
fields_required = getattr(self.Meta, 'fields_required', None)
if fields_required:
for key in self.fields:
if key not in fields_required:
self.fields[key].required = False
</code></pre>