summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorPaolo Melchiorre <paolo@melchiorre.org>2023-09-15 15:30:06 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-09-16 20:13:02 +0200
commit2f1ab16be54255213d5c3e4d925a3a24997dc917 (patch)
tree64de479179d57aa0e802243140e323dae38ce8cf /tests/admin_views
parentaebedb7bd1bd9774823d15cc1041dcdce6fb172a (diff)
Fixed #34842 -- Fixed ModelAdmin.readonly_fields crash with GeneratedFields.
Diffstat (limited to 'tests/admin_views')
-rw-r--r--tests/admin_views/admin.py6
-rw-r--r--tests/admin_views/models.py11
-rw-r--r--tests/admin_views/tests.py5
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):
"""