Add test for admin exclude fields #209

This commit is contained in:
Brian Kohan 2025-12-11 16:45:29 -08:00
parent ec19ef4bbc
commit 808ac44575
No known key found for this signature in database
GPG Key ID: ACE0570056AB4C38
4 changed files with 15 additions and 10 deletions

View File

@ -31,7 +31,11 @@ class Model2Admin(PolymorphicParentModelAdmin):
admin_site.register(Model2B, PolymorphicChildModelAdmin)
admin_site.register(Model2C, PolymorphicChildModelAdmin)
admin_site.register(Model2D, PolymorphicChildModelAdmin)
@register(Model2D)
class Model2DAdmin(PolymorphicChildModelAdmin):
exclude = ("field3",)
@register(PlainA)

View File

@ -1,4 +1,4 @@
# Generated by Django 4.2 on 2025-12-11 18:22
# Generated by Django 4.2 on 2025-12-11 18:43
from django.conf import settings
from django.db import migrations, models
@ -13,8 +13,8 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
('contenttypes', '0002_remove_content_type_name'),
('auth', '0012_alter_user_first_name_max_length'),
]
operations = [
@ -1179,7 +1179,7 @@ class Migration(migrations.Migration):
name='Model2C',
fields=[
('model2b_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='tests.model2b')),
('field3', models.CharField(max_length=30)),
('field3', models.CharField(blank=True, default='', max_length=30)),
],
options={
'abstract': False,

View File

@ -39,7 +39,7 @@ class Model2B(Model2A):
class Model2C(Model2B):
field3 = models.CharField(max_length=30)
field3 = models.CharField(max_length=30, blank=True, default="")
class Model2D(Model2C):

View File

@ -311,7 +311,7 @@ class PolymorphicFormTests(_GenericAdminFormTest):
{
"field1": "2D1",
"field2": "2D2",
"field3": "2D3",
# "field3": "2D3", excluded!
"field4": "2D4",
},
),
@ -357,7 +357,7 @@ class PolymorphicFormTests(_GenericAdminFormTest):
assert Model2D.objects.first().field1 == "2D1"
assert Model2D.objects.first().field2 == "2D2"
assert Model2D.objects.first().field3 == "2D3"
assert Model2D.objects.first().field3 == ""
assert Model2D.objects.first().field4 == "2D4"
@ -397,7 +397,7 @@ class AdminRecentActionsTests(_GenericAdminFormTest):
{
"field1": "2D1",
"field2": "2D2",
"field3": "2D3",
# "field3": "2D3", excluded!
"field4": "2D4",
},
),
@ -449,14 +449,15 @@ class AdminRecentActionsTests(_GenericAdminFormTest):
assert values == ["2A1"]
elif "model2d" in action_url:
# this also tests that exclusion of field3 works
inputs = self.page.locator("#model2d_form input[type='text']")
count = inputs.count()
assert count == 4
assert count == 3
values = []
for i in range(count):
values.append(inputs.nth(i).input_value())
assert values == ["2D1", "2D2", "2D3", "2D4"]
assert values == ["2D1", "2D2", "2D4"]
else:
assert False, f"Unexpected change url: {action_url}"