← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~ack/maas:drop-base-model-field-override into maas:master

 

Alberto Donato has proposed merging ~ack/maas:drop-base-model-field-override into maas:master.

Commit message:
drop custom model Field

This was meant to avoid an issue with model.Field mutable args in constructor,
which has long been fixed in Django



Requested reviews:
  MAAS Maintainers (maas-maintainers)

For more details, see:
https://code.launchpad.net/~ack/maas/+git/maas/+merge/435954
-- 
Your team MAAS Committers is subscribed to branch maas:master.
diff --git a/src/maasserver/fields.py b/src/maasserver/fields.py
index 7eeaad1..3c02e5a 100644
--- a/src/maasserver/fields.py
+++ b/src/maasserver/fields.py
@@ -29,9 +29,15 @@ from django import forms
 from django.core.exceptions import ObjectDoesNotExist, ValidationError
 from django.core.validators import RegexValidator, URLValidator
 from django.db import connections
-from django.db.models import BinaryField, CharField
-from django.db.models import Field as _BrokenField
-from django.db.models import GenericIPAddressField, IntegerField, Q, URLField
+from django.db.models import (
+    BinaryField,
+    CharField,
+    Field,
+    GenericIPAddressField,
+    IntegerField,
+    Q,
+    URLField,
+)
 from django.utils.deconstruct import deconstructible
 from django.utils.encoding import force_str
 from netaddr import AddrFormatError, IPAddress, IPNetwork
@@ -46,17 +52,6 @@ from maasserver.utils.orm import get_one, validate_in_transaction
 MODEL_NAME_VALIDATOR = RegexValidator(r"^\w[ \w-]*$")
 
 
-class Field(_BrokenField):
-    """Django's `Field` has a mutable default argument, hence is broken.
-
-    This fixes it.
-    """
-
-    def __init__(self, *args, validators=None, **kwargs):
-        kwargs["validators"] = [] if validators is None else validators
-        super().__init__(*args, **kwargs)
-
-
 MAC_RE = re.compile(
     r"^\s*("
     r"([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}|"
diff --git a/src/metadataserver/fields.py b/src/metadataserver/fields.py
index 7301ed6..a58b70d 100644
--- a/src/metadataserver/fields.py
+++ b/src/metadataserver/fields.py
@@ -7,8 +7,7 @@
 from base64 import b64decode, b64encode
 
 from django.db import connection
-
-from maasserver.fields import Field
+from django.db.models import Field
 
 
 class Bin(bytes):

Follow ups