Skip to content

Commit 0c3beec

Browse files
Fixes #20120: Cast RQ task args & kwargs to strings for serialization (#20166)
1 parent 758be46 commit 0c3beec

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

netbox/core/api/serializers_/tasks.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class BackgroundTaskSerializer(serializers.Serializer):
1818
description = serializers.CharField()
1919
origin = serializers.CharField()
2020
func_name = serializers.CharField()
21-
args = serializers.ListField(child=serializers.CharField())
22-
kwargs = serializers.DictField()
21+
args = serializers.SerializerMethodField()
22+
kwargs = serializers.SerializerMethodField()
2323
result = serializers.CharField()
2424
timeout = serializers.IntegerField()
2525
result_ttl = serializers.IntegerField()
@@ -42,6 +42,16 @@ class BackgroundTaskSerializer(serializers.Serializer):
4242
is_scheduled = serializers.BooleanField()
4343
is_stopped = serializers.BooleanField()
4444

45+
def get_args(self, obj) -> list:
46+
return [
47+
str(arg) for arg in obj.args
48+
]
49+
50+
def get_kwargs(self, obj) -> dict:
51+
return {
52+
key: str(value) for key, value in obj.kwargs.items()
53+
}
54+
4555
def get_position(self, obj) -> int:
4656
return obj.get_position()
4757

0 commit comments

Comments
 (0)