model-bakery 1.16.0__py3-none-any.whl → 1.17.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of model-bakery might be problematic. Click here for more details.
- model_bakery/__about__.py +1 -1
- model_bakery/baker.py +19 -0
- model_bakery/random_gen.py +2 -4
- {model_bakery-1.16.0.dist-info → model_bakery-1.17.0.dist-info}/METADATA +2 -2
- {model_bakery-1.16.0.dist-info → model_bakery-1.17.0.dist-info}/RECORD +7 -7
- {model_bakery-1.16.0.dist-info → model_bakery-1.17.0.dist-info}/WHEEL +0 -0
- {model_bakery-1.16.0.dist-info → model_bakery-1.17.0.dist-info}/licenses/LICENSE +0 -0
model_bakery/__about__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "1.
|
|
1
|
+
__version__ = "1.17.0"
|
model_bakery/baker.py
CHANGED
|
@@ -498,17 +498,30 @@ class Baker(Generic[M]):
|
|
|
498
498
|
self, attrs: Dict[str, Any], _commit, _save_kwargs, _from_manager
|
|
499
499
|
) -> M:
|
|
500
500
|
one_to_many_keys = {}
|
|
501
|
+
auto_now_keys = {}
|
|
502
|
+
|
|
501
503
|
for k in tuple(attrs.keys()):
|
|
502
504
|
field = getattr(self.model, k, None)
|
|
505
|
+
|
|
506
|
+
if not field:
|
|
507
|
+
continue
|
|
508
|
+
|
|
503
509
|
if isinstance(field, ForeignRelatedObjectsDescriptor):
|
|
504
510
|
one_to_many_keys[k] = attrs.pop(k)
|
|
505
511
|
|
|
512
|
+
if hasattr(field, "field") and (
|
|
513
|
+
getattr(field.field, "auto_now_add", False)
|
|
514
|
+
or getattr(field.field, "auto_now", False)
|
|
515
|
+
):
|
|
516
|
+
auto_now_keys[k] = attrs[k]
|
|
517
|
+
|
|
506
518
|
instance = self.model(**attrs)
|
|
507
519
|
# m2m only works for persisted instances
|
|
508
520
|
if _commit:
|
|
509
521
|
instance.save(**_save_kwargs)
|
|
510
522
|
self._handle_one_to_many(instance, one_to_many_keys)
|
|
511
523
|
self._handle_m2m(instance)
|
|
524
|
+
self._handle_auto_now(instance, auto_now_keys)
|
|
512
525
|
|
|
513
526
|
if _from_manager:
|
|
514
527
|
# Fetch the instance using the given Manager, e.g.
|
|
@@ -609,6 +622,12 @@ class Baker(Generic[M]):
|
|
|
609
622
|
|
|
610
623
|
return False
|
|
611
624
|
|
|
625
|
+
def _handle_auto_now(self, instance: Model, attrs: Dict[str, Any]):
|
|
626
|
+
if not attrs:
|
|
627
|
+
return
|
|
628
|
+
|
|
629
|
+
instance.__class__.objects.filter(pk=instance.pk).update(**attrs)
|
|
630
|
+
|
|
612
631
|
def _handle_one_to_many(self, instance: Model, attrs: Dict[str, Any]):
|
|
613
632
|
for key, values in attrs.items():
|
|
614
633
|
manager = getattr(instance, key)
|
model_bakery/random_gen.py
CHANGED
|
@@ -112,9 +112,7 @@ def gen_time() -> time:
|
|
|
112
112
|
|
|
113
113
|
|
|
114
114
|
def gen_string(max_length: int) -> str:
|
|
115
|
-
return
|
|
116
|
-
"".join(baker_random.choice(string.ascii_letters) for _ in range(max_length))
|
|
117
|
-
)
|
|
115
|
+
return "".join(baker_random.choice(string.ascii_letters) for _ in range(max_length))
|
|
118
116
|
|
|
119
117
|
|
|
120
118
|
def _gen_string_get_max_length(field: Field) -> Tuple[str, int]:
|
|
@@ -129,7 +127,7 @@ gen_string.required = [_gen_string_get_max_length] # type: ignore[attr-defined]
|
|
|
129
127
|
|
|
130
128
|
def gen_slug(max_length: int) -> str:
|
|
131
129
|
valid_chars = string.ascii_letters + string.digits + "_-"
|
|
132
|
-
return
|
|
130
|
+
return "".join(baker_random.choice(valid_chars) for _ in range(max_length))
|
|
133
131
|
|
|
134
132
|
|
|
135
133
|
gen_slug.required = ["max_length"] # type: ignore[attr-defined]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: model-bakery
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.17.0
|
|
4
4
|
Summary: Smart object creation facility for Django.
|
|
5
5
|
Project-URL: Homepage, https://github.com/model-bakers/model_bakery
|
|
6
6
|
Author-email: berin <bernardoxhc@gmail.com>, amureki <amureki@hey.com>
|
|
@@ -55,7 +55,7 @@ Model Bakery is a rename of the legacy [Model Mommy project](https://pypi.org/pr
|
|
|
55
55
|
## Install
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
|
-
pip install
|
|
58
|
+
pip install model-bakery
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
## Usage and Info
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
model_bakery/__about__.py,sha256=
|
|
1
|
+
model_bakery/__about__.py,sha256=BVr0oLjmHWJS0DsUE-HOjf8hMNndB1Nh8X6y77zSq8s,23
|
|
2
2
|
model_bakery/__init__.py,sha256=yY0xZUrr_mskBm07iF-MFBEiXzOuKrlMwpKWkXZs8v0,31
|
|
3
3
|
model_bakery/_types.py,sha256=P0iKC5-Cnh3lyzyZs1mlCfOW31zbEZpxqWCuYonucKo,130
|
|
4
|
-
model_bakery/baker.py,sha256=
|
|
4
|
+
model_bakery/baker.py,sha256=mZBIalLwIVIkgUOBftFENz7_SCujhCaN3y_jbaPHSq8,28035
|
|
5
5
|
model_bakery/exceptions.py,sha256=q1oBZvfxL7HAD-F9aWgiYs4P4rz-hJ5TjeX7gcb3Q0I,333
|
|
6
6
|
model_bakery/generators.py,sha256=IkYFBTwSVwa_wwPnZRiVR1vHqUfjWqmyPGCl10RElB0,6467
|
|
7
7
|
model_bakery/gis.py,sha256=eTNOfT98_ncLAb4KmOYJhE-3ALU2_pQbUpWPTolFZJI,1028
|
|
8
8
|
model_bakery/mock_file.txt,sha256=CO5zPS6Uydk48ZRnGcRKVEYKd2YjaUMa9QOgF5gGMCo,10
|
|
9
9
|
model_bakery/mock_img.jpeg,sha256=iF2ybgAVtDvl48-8VKdv_QFHKfnqeOaeGwR6ZLexJkY,1916
|
|
10
10
|
model_bakery/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
model_bakery/random_gen.py,sha256=
|
|
11
|
+
model_bakery/random_gen.py,sha256=SexyzpuAe5FKXIofXloCmJ3tL4S5WJ9cVowB8sMHXP8,9773
|
|
12
12
|
model_bakery/recipe.py,sha256=miruAnulPVL4N7Q3tXRfRV95MUvbpZZ3A5M7afv-2O8,8411
|
|
13
13
|
model_bakery/timezone.py,sha256=rd-KGVHqJoHdHKBgENPMBTRqqxgKE91CM9C0f9nS90M,325
|
|
14
14
|
model_bakery/utils.py,sha256=fw4ewtwkJ6wZ9PbDzBGvODX7CV81ozy2_6JAQmITmX4,4581
|
|
15
|
-
model_bakery-1.
|
|
16
|
-
model_bakery-1.
|
|
17
|
-
model_bakery-1.
|
|
18
|
-
model_bakery-1.
|
|
15
|
+
model_bakery-1.17.0.dist-info/METADATA,sha256=q3pWgLVXrodr1osb_HUIJSoBTuDsQHSDQ4CzTQrwmpE,4311
|
|
16
|
+
model_bakery-1.17.0.dist-info/WHEEL,sha256=9QBuHhg6FNW7lppboF2vKVbCGTVzsFykgRQjjlajrhA,87
|
|
17
|
+
model_bakery-1.17.0.dist-info/licenses/LICENSE,sha256=kCwHls7z8Y7NyZCmdnV1qLSdLrQ8bHrXLji5HOasgUc,611
|
|
18
|
+
model_bakery-1.17.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|