From b6b487ba5fbe841ce15ca7ff2862432a779dbbf2 Mon Sep 17 00:00:00 2001
From: David Trattnig <david.trattnig@o94.at>
Date: Sat, 27 Jun 2020 14:02:03 +0200
Subject: [PATCH] Avoid rendering of None values in JSON.

---
 src/models.py | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/models.py b/src/models.py
index 7168493..653cd17 100644
--- a/src/models.py
+++ b/src/models.py
@@ -20,10 +20,11 @@
 
 import datetime
 
-from sqlalchemy import create_engine, Column, DateTime, String, Integer, Boolean
-from sqlalchemy.event import listen
-from flask_sqlalchemy import SQLAlchemy
-from flask_marshmallow import Marshmallow
+from sqlalchemy         import create_engine, Column, DateTime, String, Integer, Boolean
+from sqlalchemy.event   import listen
+from flask_sqlalchemy   import SQLAlchemy
+from flask_marshmallow  import Marshmallow
+from marshmallow        import Schema, fields, post_dump
 
 db = SQLAlchemy()
 ma = Marshmallow()
@@ -163,6 +164,14 @@ class PlayLogSchema(ma.SQLAlchemyAutoSchema):
         model = PlayLog
         sqla_session = db.session
 
+    SKIP_VALUES = set([None])
+
+    @post_dump
+    def remove_skip_values(self, data, many=False):
+        return {
+            key: value for key, value in data.items()
+            if value not in self.SKIP_VALUES
+        }
 
 
 class TrackSchema(ma.SQLAlchemySchema):
-- 
GitLab