File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -1680,6 +1680,9 @@ async def save(
1680
1680
self .check ()
1681
1681
db = self ._get_db (pipeline )
1682
1682
document = jsonable_encoder (self .dict ())
1683
+
1684
+ # filter out values which are `None` because they are not valid in a HSET
1685
+ document = {k : v for k , v in document .items () if v is not None }
1683
1686
# TODO: Wrap any Redis response errors in a custom exception?
1684
1687
await db .hset (self .key (), mapping = document )
1685
1688
return self
Original file line number Diff line number Diff line change @@ -875,3 +875,24 @@ async def test_xfix_queries(members, m):
875
875
876
876
result = await m .Member .find (m .Member .bio % "*eat*" ).first ()
877
877
assert result .first_name == "Andrew"
878
+
879
+
880
+ @py_test_mark_asyncio
881
+ async def test_none ():
882
+ class ModelWithNoneDefault (HashModel ):
883
+ test : Optional [str ] = Field (index = True , default = None )
884
+
885
+ class ModelWithStringDefault (HashModel ):
886
+ test : Optional [str ] = Field (index = True , default = 'None' )
887
+
888
+ await Migrator ().run ()
889
+
890
+ a = ModelWithNoneDefault (test = None )
891
+ await a .save ()
892
+ res = await ModelWithNoneDefault .find (ModelWithNoneDefault .pk == a .pk ).first ()
893
+ assert res .test is None
894
+
895
+ b = ModelWithStringDefault (test = None )
896
+ await b .save ()
897
+ res = await ModelWithStringDefault .find (ModelWithStringDefault .pk == b .pk ).first ()
898
+ assert res .test == 'None'
You can’t perform that action at this time.
0 commit comments