Skip to content

Commit dbeb2de

Browse files
committed
Reorder classes in forms/fields/embedded_model.py
Match the order in embedded_model_array.py
1 parent c5bfebf commit dbeb2de

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

django_mongodb_backend/forms/fields/embedded_model.py

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,6 @@
44
from django.utils.translation import gettext_lazy as _
55

66

7-
class EmbeddedModelWidget(forms.MultiWidget):
8-
def __init__(self, field_names, *args, **kwargs):
9-
self.field_names = field_names
10-
super().__init__(*args, **kwargs)
11-
# The default widget names are "_0", "_1", etc. Use the field names
12-
# instead since that's how they'll be rendered by the model form.
13-
self.widgets_names = ["-" + name for name in field_names]
14-
15-
def decompress(self, value):
16-
if value is None:
17-
return []
18-
# Get the data from `value` (a model) for each field.
19-
return [getattr(value, name) for name in self.field_names]
20-
21-
22-
class EmbeddedModelBoundField(forms.BoundField):
23-
def __init__(self, form, field, name, prefix_override=None):
24-
super().__init__(form, field, name)
25-
# prefix_override overrides the prefix in self.field.form_kwargs so
26-
# that nested embedded model form elements have the correct name.
27-
self.prefix_override = prefix_override
28-
29-
def __str__(self):
30-
"""Render the model form as the representation for this field."""
31-
form = self.field.model_form_cls(instance=self.value(), **self.field.form_kwargs)
32-
if self.prefix_override:
33-
form.prefix = self.prefix_override
34-
return mark_safe(f"{form.as_div()}") # noqa: S308
35-
36-
377
class EmbeddedModelField(forms.MultiValueField):
388
default_error_messages = {
399
"invalid": _("Enter a list of values."),
@@ -79,3 +49,33 @@ def prepare_value(self, value):
7949
# (rather than a list) for initializing the form in
8050
# EmbeddedModelBoundField.__str__().
8151
return self.compress(value) if isinstance(value, list) else value
52+
53+
54+
class EmbeddedModelBoundField(forms.BoundField):
55+
def __init__(self, form, field, name, prefix_override=None):
56+
super().__init__(form, field, name)
57+
# prefix_override overrides the prefix in self.field.form_kwargs so
58+
# that nested embedded model form elements have the correct name.
59+
self.prefix_override = prefix_override
60+
61+
def __str__(self):
62+
"""Render the model form as the representation for this field."""
63+
form = self.field.model_form_cls(instance=self.value(), **self.field.form_kwargs)
64+
if self.prefix_override:
65+
form.prefix = self.prefix_override
66+
return mark_safe(f"{form.as_div()}") # noqa: S308
67+
68+
69+
class EmbeddedModelWidget(forms.MultiWidget):
70+
def __init__(self, field_names, *args, **kwargs):
71+
self.field_names = field_names
72+
super().__init__(*args, **kwargs)
73+
# The default widget names are "_0", "_1", etc. Use the field names
74+
# instead since that's how they'll be rendered by the model form.
75+
self.widgets_names = ["-" + name for name in field_names]
76+
77+
def decompress(self, value):
78+
if value is None:
79+
return []
80+
# Get the data from `value` (a model) for each field.
81+
return [getattr(value, name) for name in self.field_names]

0 commit comments

Comments
 (0)