diff options
| author | Paolo Melchiorre <paolo@melchiorre.org> | 2023-09-15 15:30:06 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-09-16 20:13:02 +0200 |
| commit | 2f1ab16be54255213d5c3e4d925a3a24997dc917 (patch) | |
| tree | 64de479179d57aa0e802243140e323dae38ce8cf /tests/admin_views | |
| parent | aebedb7bd1bd9774823d15cc1041dcdce6fb172a (diff) | |
Fixed #34842 -- Fixed ModelAdmin.readonly_fields crash with GeneratedFields.
Diffstat (limited to 'tests/admin_views')
| -rw-r--r-- | tests/admin_views/admin.py | 6 | ||||
| -rw-r--r-- | tests/admin_views/models.py | 11 | ||||
| -rw-r--r-- | tests/admin_views/tests.py | 5 |
3 files changed, 22 insertions, 0 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index aa8b183f14..389e1e8370 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -119,6 +119,7 @@ from .models import ( Simple, Sketch, Song, + Square, State, Story, StumpJoke, @@ -1175,6 +1176,10 @@ class TravelerAdmin(admin.ModelAdmin): autocomplete_fields = ["living_country"] +class SquareAdmin(admin.ModelAdmin): + readonly_fields = ("area",) + + site = admin.AdminSite(name="admin") site.site_url = "/my-site-url/" site.register(Article, ArticleAdmin) @@ -1298,6 +1303,7 @@ site.register(UserProxy) site.register(Box) site.register(Country, CountryAdmin) site.register(Traveler, TravelerAdmin) +site.register(Square, SquareAdmin) # Register core models we need in our tests site.register(User, UserAdmin) diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py index 85facf8821..de16796e85 100644 --- a/tests/admin_views/models.py +++ b/tests/admin_views/models.py @@ -1134,3 +1134,14 @@ class Traveler(models.Model): related_name="favorite_country_to_vacation_set", limit_choices_to={"continent": Country.ASIA}, ) + + +class Square(models.Model): + side = models.IntegerField() + area = models.GeneratedField( + db_persist=True, + expression=models.F("side") * models.F("side"), + ) + + class Meta: + required_db_features = {"supports_stored_generated_columns"} diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index e7b2519eef..164de1d01c 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -6861,6 +6861,11 @@ class ReadonlyTest(AdminFieldExtractionMixin, TestCase): field = self.get_admin_readonly_field(response, "plotdetails") self.assertEqual(field.contents(), "-") # default empty value + @skipUnlessDBFeature("supports_stored_generated_columns") + def test_readonly_unsaved_generated_field(self): + response = self.client.get(reverse("admin:admin_views_square_add")) + self.assertContains(response, '<div class="readonly">-</div>') + @ignore_warnings(category=RemovedInDjango60Warning) def test_readonly_field_overrides(self): """ |
