@@ -61,8 +61,6 @@ def serialize_foreign_key(
6161 self , obj : models .Model , field : Any , referrers : Any = tuple ()
6262 ) -> Dict [Any , Any ]:
6363 """Serializes foreign key field of Django model instance"""
64- if not self .show_field (obj , field .name ):
65- return {}
6664 try :
6765 if not hasattr (obj , field .name ):
6866 return {field .name : None } # pragma: no cover
@@ -75,9 +73,8 @@ def serialize_foreign_key(
7573 except Exception as exc : # pragma: no cover
7674 logger .error (f"serialize_foreign_key error - { obj } " , exc_info = exc )
7775 return {field .name : None }
78- if hasattr (obj , "__Meta" ) and getattr (obj , "__Meta" ).get (
79- "model_recursive" , False
80- ):
76+
77+ if self .get_configuration (obj , "model_recursive" , default = False ):
8178 return {
8279 field .name : self .serialize_model_instance (related_instance , referrers )
8380 }
@@ -96,9 +93,7 @@ def serialize_many_relationship(
9693 for k , v in obj ._prefetched_objects_cache .items (): # type: ignore
9794 field_name = k if hasattr (obj , k ) else k + "_set"
9895 if v :
99- if hasattr (obj , "__Meta" ) and getattr (obj , "__Meta" ).get (
100- "model_join" , True
101- ):
96+ if self .get_configuration (obj , "model_join" , default = True ):
10297 out [field_name ] = self .serialize_queryset (v , referrers + (obj ,))
10398 else :
10499 out [field_name ] = [o .pk for o in v ]
@@ -109,16 +104,14 @@ def serialize_many_relationship(
109104 return out
110105
111106 @staticmethod
112- def get_configuration (obj : models .Model , _name : str ) -> Any :
113- _value = None
107+ def get_configuration (obj : models .Model , _name : str , default : Any = None ) -> Any :
108+ _value = default if default else None
114109 if hasattr (obj , "__Meta" ):
115110 _value = getattr (obj , "__Meta" ).get (_name , None )
116111 return _value
117112
118113 def get_model_fields_list (self , obj : models .Model ) -> Any :
119114 model_fields = self .get_configuration (obj , "model_fields" )
120- if not model_fields :
121- model_fields = "__all__"
122115 return model_fields
123116
124117 def get_model_exclude_list (self , obj : models .Model ) -> Any :
0 commit comments