mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #34842 -- Fixed ModelAdmin.readonly_fields crash with GeneratedFields.
This commit is contained in:
committed by
Mariusz Felisiak
parent
aebedb7bd1
commit
2f1ab16be5
@@ -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)
|
||||
|
||||
@@ -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"}
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user