formfields.py 566 B

1234567891011121314151617181920212223242526
  1. from netaddr import EUI, AddrFormatError
  2. from django import forms
  3. from django.core.exceptions import ValidationError
  4. #
  5. # Form fields
  6. #
  7. class MACAddressFormField(forms.Field):
  8. default_error_messages = {
  9. 'invalid': "Enter a valid MAC address.",
  10. }
  11. def to_python(self, value):
  12. if not value:
  13. return None
  14. if isinstance(value, EUI):
  15. return value
  16. try:
  17. return EUI(value, version=48)
  18. except AddrFormatError:
  19. raise ValidationError("Please specify a valid MAC address.")