Skip to content

Commit 1b98dd7

Browse files
committed
rename field
1 parent 6181715 commit 1b98dd7

File tree

8 files changed

+31
-26
lines changed

8 files changed

+31
-26
lines changed

django_mongodb_backend/fields/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
from .auto import ObjectIdAutoField
33
from .duration import register_duration_field
44
from .embedded_model import EmbeddedModelField
5+
from .embedded_model_array import EmbeddedModelArrayField
56
from .json import register_json_field
6-
from .multiple_embedded_model import MultipleEmbeddedModelField
77
from .objectid import ObjectIdField
88

99
__all__ = [
1010
"register_fields",
1111
"ArrayField",
12+
"EmbeddedModelArrayField",
1213
"EmbeddedModelField",
13-
"MultipleEmbeddedModelField",
1414
"ObjectIdAutoField",
1515
"ObjectIdField",
1616
]

django_mongodb_backend/fields/array.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,10 @@ def db_type(self, connection):
126126
return "array"
127127

128128
def get_db_prep_value(self, value, connection, prepared=False):
129-
from ..fields import EmbeddedModelField
130-
131129
if isinstance(value, list | tuple):
132-
# DecimalField here is a workaround for
133-
# https://code.djangoproject.com/ticket/35982 (fixed in Django 5.2).
134-
if isinstance(self.base_field, (DecimalField | EmbeddedModelField)):
130+
# Workaround for https://code.djangoproject.com/ticket/35982
131+
# (fixed in Django 5.2).
132+
if isinstance(self.base_field, DecimalField):
135133
return [self.base_field.get_db_prep_save(i, connection) for i in value]
136134
return [self.base_field.get_db_prep_value(i, connection, prepared=False) for i in value]
137135
return value

django_mongodb_backend/fields/multiple_embedded_model.py renamed to django_mongodb_backend/fields/embedded_model_array.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
1-
from ..forms import MultipleEmbeddedModelFormField
1+
from ..forms import EmbeddedModelArrayFormField
22
from . import EmbeddedModelField
33
from .array import ArrayField
44

55

6-
class MultipleEmbeddedModelField(ArrayField):
6+
class EmbeddedModelArrayField(ArrayField):
77
def __init__(self, model, **kwargs):
88
super().__init__(EmbeddedModelField(model), **kwargs)
99

1010
def deconstruct(self):
1111
name, path, args, kwargs = super().deconstruct()
12-
if (
13-
path
14-
== "django_mongodb_backend.fields.multiple_embedded_model.MultipleEmbeddedModelField"
15-
):
16-
path = "django_mongodb_backend.fields.MultipleEmbeddedModelField"
12+
if path == "django_mongodb_backend.fields.multiple_embedded_model.EmbeddedModelArrayField":
13+
path = "django_mongodb_backend.fields.EmbeddedModelArrayField"
1714
kwargs.update(
1815
{
1916
"model": self.base_field.embedded_model,
@@ -23,10 +20,15 @@ def deconstruct(self):
2320
del kwargs["base_field"]
2421
return name, path, args, kwargs
2522

23+
def get_db_prep_value(self, value, connection, prepared=False):
24+
if isinstance(value, list | tuple):
25+
return [self.base_field.get_db_prep_save(i, connection) for i in value]
26+
return value
27+
2628
def formfield(self, **kwargs):
2729
return super().formfield(
2830
**{
29-
"form_class": MultipleEmbeddedModelFormField,
31+
"form_class": EmbeddedModelArrayFormField,
3032
"model": self.base_field.embedded_model,
3133
"max_length": self.size,
3234
"prefix": self.name,

django_mongodb_backend/forms/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
from .fields import (
2+
EmbeddedModelArrayFormField,
23
EmbeddedModelField,
3-
MultipleEmbeddedModelFormField,
44
ObjectIdField,
55
SimpleArrayField,
66
SplitArrayField,
77
SplitArrayWidget,
88
)
99

1010
__all__ = [
11+
"EmbeddedModelArrayFormField",
1112
"EmbeddedModelField",
12-
"MultipleEmbeddedModelFormField",
1313
"SimpleArrayField",
1414
"SplitArrayField",
1515
"SplitArrayWidget",

django_mongodb_backend/forms/fields/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from .array import SimpleArrayField, SplitArrayField, SplitArrayWidget
22
from .embedded_model import EmbeddedModelField
3-
from .multiple_embedded_model import MultipleEmbeddedModelFormField
3+
from .embedded_model_array import EmbeddedModelArrayFormField
44
from .objectid import ObjectIdField
55

66
__all__ = [
7+
"EmbeddedModelArrayFormField",
78
"EmbeddedModelField",
8-
"MultipleEmbeddedModelFormField",
99
"SimpleArrayField",
1010
"SplitArrayField",
1111
"SplitArrayWidget",

django_mongodb_backend/forms/fields/multiple_embedded_model.py renamed to django_mongodb_backend/forms/fields/embedded_model_array.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def models_to_dicts(models):
1313
return [model_to_dict(model) for model in models or []]
1414

1515

16-
class MultipleEmbeddedModelFormField(forms.Field):
16+
class EmbeddedModelArrayFormField(forms.Field):
1717
def __init__(self, model, prefix, max_length=None, *args, **kwargs):
1818
kwargs.pop("base_field")
1919
self.model = model
@@ -68,7 +68,7 @@ def __str__(self):
6868

6969
class MultipleEmbeddedModelWidget(forms.Widget):
7070
"""
71-
This widget extracts the data for MultipleEmbeddedModelFormField's formset.
71+
This widget extracts the data for EmbeddedModelArrayFormField's formset.
7272
It is never rendered.
7373
"""
7474

tests/model_fields_/models.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22

33
from django.db import models
44

5-
from django_mongodb_backend.fields import ArrayField, EmbeddedModelField, ObjectIdField
5+
from django_mongodb_backend.fields import (
6+
ArrayField,
7+
EmbeddedModelArrayField,
8+
EmbeddedModelField,
9+
ObjectIdField,
10+
)
611
from django_mongodb_backend.models import EmbeddedModel
712

813

@@ -171,7 +176,7 @@ def __str__(self):
171176

172177
class Movie(models.Model):
173178
title = models.CharField(max_length=255)
174-
reviews = ArrayField(EmbeddedModelField(Review), null=True)
179+
reviews = EmbeddedModelArrayField(Review, null=True)
175180

176181
def __str__(self):
177182
return self.title

tests/model_forms_/models.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from django.db import models
22

3-
from django_mongodb_backend.fields import EmbeddedModelField, MultipleEmbeddedModelField
3+
from django_mongodb_backend.fields import EmbeddedModelArrayField, EmbeddedModelField
44
from django_mongodb_backend.models import EmbeddedModel
55

66

@@ -38,8 +38,8 @@ def __str__(self):
3838

3939
class Movie(models.Model):
4040
title = models.CharField(max_length=255)
41-
reviews = MultipleEmbeddedModelField(Review)
42-
featured_reviews = MultipleEmbeddedModelField(Review, null=True, blank=True)
41+
reviews = EmbeddedModelArrayField(Review)
42+
featured_reviews = EmbeddedModelArrayField(Review, null=True, blank=True)
4343

4444
def __str__(self):
4545
return self.title

0 commit comments

Comments
 (0)