diff --git a/apps/settings/serializers/basic.py b/apps/settings/serializers/basic.py index e92304964..4c5ce409a 100644 --- a/apps/settings/serializers/basic.py +++ b/apps/settings/serializers/basic.py @@ -1,8 +1,11 @@ +import uuid + from django.utils.translation import ugettext_lazy as _ from rest_framework import serializers class AnnouncementSerializer(serializers.Serializer): + ID = serializers.CharField(required=False, allow_blank=True, allow_null=True) SUBJECT = serializers.CharField(required=True, max_length=1024, label=_("Subject")) CONTENT = serializers.CharField(label=_("Content")) LINK = serializers.URLField( @@ -11,10 +14,14 @@ class AnnouncementSerializer(serializers.Serializer): ) def to_representation(self, instance): - defaults = {'SUBJECT': '', 'CONTENT': '', 'LINK': '', 'ENABLED': False} + defaults = {'ID': '', 'SUBJECT': '', 'CONTENT': '', 'LINK': '', 'ENABLED': False} data = {**defaults, **instance} return super().to_representation(data) + def to_internal_value(self, data): + data['ID'] = str(uuid.uuid4()) + return super().to_internal_value(data) + class BasicSettingSerializer(serializers.Serializer): SITE_URL = serializers.URLField(