Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.05 KB | None | 0 0
  1. class EventSerializer(serializers.ModelSerializer):
  2.     started_at = serializers.DateTimeField(source='event.started_at', required=False)
  3.     ended_at = serializers.DateTimeField(source='event.ended_at', required=False,)
  4.  
  5.     class Meta:
  6.         model = EventLang
  7.         fields = ('event', 'title', 'id', 'lang_code', 'description', 'agenda', 'ended_at', 'started_at')
  8.         extra_kwargs = {'event': {'required': False}}
  9.  
  10.     def create(self, validated_data):
  11.         event = validated_data.pop('event', None)
  12.         if event:
  13.             validated_data['event'] = self._get_or_create_event(event)
  14.         return super().create(validated_data)
  15.  
  16.     def update(self, instance, validated_data):
  17.         event = validated_data.pop('event', None)
  18.         if event:
  19.             Event.objects.filter(id=instance.event_id).update(**event)
  20.         return super().update(instance, validated_data)
  21.  
  22.     @staticmethod
  23.     def _get_or_create_event(event):
  24.         if isinstance(event, Event):
  25.             return event
  26.         return Event.objects.create(**event)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement