dispatch/theme/widgets.py
def save(self, validated_data):
        """Save widget data for this zone."""

        (zone, created) = ZoneModel.objects.get_or_create(zone_id=self.id)

        zone.widget_id = validated_data['widget']
        zone.data = validated_data['data']

        # Call widget before-save hook on nested widgets
        for key in list(zone.data.keys()):
            if isinstance(zone.data[key], dict) and ('id' in zone.data[key].keys()) and ('data' in zone.data[key].keys()):
                zone.data[key]['data'] = self.before_save(zone.data[key]['id'], zone.data[key]['data'])

        # Call widget before-save hook
        zone.data = self.before_save(zone.widget_id, zone.data)

        return zone.save()
def save(self, validated_data):
        """Save widget data for this zone."""

        (zone, created) = ZoneModel.objects.get_or_create(zone_id=self.id)

        zone.widget_id = validated_data['widget']
        zone.data = validated_data['data']

        # Call widget before-save hook on nested widgets
        for key in list(zone.data.keys()):
            if isinstance(zone.data[key], dict) and ('id' in zone.data[key].keys()) and ('data' in zone.data[key].keys()):
                zone.data[key]['data'] = self.before_save(zone.data[key]['id'], zone.data[key]['data'])

        # Call widget before-save hook
        zone.data = self.before_save(zone.widget_id, zone.data)

        return zone.save()
Save widget data for this zone.