<p>我决定使用一个自定义字段并重写post()。如果有更好的方法,我们将非常感谢您的评论/编辑。在</p>
<h3>在表单.py</h3>
<pre><code>import uuid
from django.core.exceptions import ValidationError
MAX_UUIDS = 10
class UUIDArrayField(forms.Field):
""" Custom field representing an array of up to MAX_UUIDS uuid4 strings """
def clean(self, value):
if type(value) != type([]):
raise ValidationError(self.error_messages['not_a_list'])
if len(value) > MAX_UUIDS:
raise ValidationError(self.error_messages['too_many_values'])
try:
for v in value:
print(v)
uuid.UUID(v, version=4) # ValueError if not a valid uuid4
return value
except:
raise ValidationError(self.error_messages['invalid_uuid'])
class ObjectMultiDeleteForm(forms.Form):
""" form to delete multiple products """
uuids = UUIDArrayField(
error_messages = {
'not_a_list': _("A data type other than list was supplied."),
'too_many_values': _("The list of values exceeds the maximum allowed."),
'invalid_uuid': _("An invalid identifier was specified."),
})
</code></pre>
<h3>在视图.py</h3>
^{pr2}$