From 8b2fec322d1f86d87210912fb47ba79400802425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Dlouh=C3=BD?= Date: Fri, 24 Jan 2025 17:05:01 +0100 Subject: [PATCH 1/2] fix and test regression forbiding to use Proxy models as GFK --- model_bakery/baker.py | 2 +- tests/test_baker.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/model_bakery/baker.py b/model_bakery/baker.py index 07d4ee2c..16493fec 100644 --- a/model_bakery/baker.py +++ b/model_bakery/baker.py @@ -714,7 +714,7 @@ def _handle_generic_foreign_keys(self, instance: Model, attrs: Dict[str, Any]): setattr( instance, ct_field_name, - contenttypes_models.ContentType.objects.get_for_model(value), + contenttypes_models.ContentType.objects.get_for_model(value, for_concrete_model=False), ) setattr(instance, oid_field_name, value.pk) diff --git a/tests/test_baker.py b/tests/test_baker.py index 9c06059c..4097112e 100644 --- a/tests/test_baker.py +++ b/tests/test_baker.py @@ -635,6 +635,20 @@ def test_create_model_with_contenttype_field(self): assert isinstance(dummy, models.DummyGenericForeignKeyModel) assert isinstance(dummy.content_type, ContentType) + def test_create_model_with_contenttype_field_and_proxy_model(self): + from django.contrib.contenttypes.models import ContentType + class ProxyPerson(models.Person): + class Meta: + proxy = True + app_label = "generic" + + dummy = baker.make(models.DummyGenericForeignKeyModel, content_object=baker.make(ProxyPerson, name="John Doe")) + dummy.refresh_from_db() + assert isinstance(dummy, models.DummyGenericForeignKeyModel) + assert isinstance(dummy.content_type, ContentType) + assert isinstance(dummy.content_object, ProxyPerson) + assert dummy.content_object.name == "John Doe" + @pytest.mark.skipif( not BAKER_CONTENTTYPES, reason="Django contenttypes framework is not installed" From 94b8a7c02e27f11328b67e229ab3663c9b66f6bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Dlouh=C3=BD?= Date: Fri, 24 Jan 2025 17:07:57 +0100 Subject: [PATCH 2/2] update CHANGELOG.md --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5df367c0..1baf5b16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Removed +## [1.20.2](https://pypi.org/project/model-bakery/1.20.2/) + +### Changed + +- fix and test regression forbiding to use Proxy models as GFK + ## [1.20.1](https://pypi.org/project/model-bakery/1.20.1/) ### Added