Tweak: improve tag parent validation error handling (#11096)

This commit is contained in:
shamoon
2025-10-20 22:42:01 -07:00
committed by GitHub
parent a206ac78dd
commit fcae006afa
3 changed files with 4 additions and 4 deletions

View File

@@ -132,7 +132,7 @@ class Tag(MatchingModel, TreeNodeModel):
height = 0 if self.pk is None else self.get_depth()
deepest_new_depth = (new_parent_depth + 1) + height
if deepest_new_depth > self.MAX_NESTING_DEPTH:
raise ValidationError(_("Maximum nesting depth exceeded."))
raise ValidationError({"parent": _("Maximum nesting depth exceeded.")})
return super().clean()

View File

@@ -635,7 +635,7 @@ class TagSerializer(MatchingModelSerializer, OwnedObjectSerializer):
temp.clean()
except ValidationError as e:
logger.debug("Tag parent validation failed: %s", e)
raise serializers.ValidationError({"parent": _("Invalid parent tag.")})
raise e
return super().validate(attrs)

View File

@@ -171,7 +171,7 @@ class TestTagHierarchy(APITestCase):
)
assert resp_fail.status_code == 400
assert "parent" in resp_fail.data
assert "Invalid" in str(resp_fail.data["parent"])
assert "Maximum nesting depth exceeded" in str(resp_fail.data["parent"])
def test_max_depth_on_move_subtree(self):
a = Tag.objects.create(name="A2")
@@ -191,7 +191,7 @@ class TestTagHierarchy(APITestCase):
)
assert resp_fail.status_code == 400
assert "Maximum nesting depth exceeded" in str(
resp_fail.data["non_field_errors"],
resp_fail.data["parent"],
)
# Moving X under C (depth 3) should be allowed (deepest becomes 5)