From 96ddc3e26e1dd55a25a7084f2eb1c60a7e052182 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Thu, 7 Sep 2023 15:06:38 -0400 Subject: [PATCH] feat: define and use JSON Schema for tags --- program/serializers.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/program/serializers.py b/program/serializers.py index 11d72b42..e9adb681 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -21,6 +21,7 @@ import re from typing import List, TypedDict +from drf_jsonschema_serializer import JSONSchemaField from rest_framework import serializers from django.contrib.auth.models import User @@ -806,6 +807,14 @@ class NoteLinkSerializer(serializers.ModelSerializer): fields = ("type", "url") +tags_json_schema = { + "type": "array", + "items": { + "type": "string" + } +} + + class NoteSerializer(serializers.ModelSerializer): contributor_ids = serializers.PrimaryKeyRelatedField( many=True, queryset=Host.objects.all(), source="contributors" @@ -815,7 +824,7 @@ class NoteSerializer(serializers.ModelSerializer): ) links = NoteLinkSerializer(many=True, required=False) playlist_id = serializers.IntegerField(required=False) - tags = serializers.JSONField(default=[], required=False) + tags = JSONSchemaField(tags_json_schema) timeslot_id = serializers.PrimaryKeyRelatedField( queryset=TimeSlot.objects.all(), required=False ) -- GitLab