File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -70,12 +70,16 @@ def get_json_schema(self) -> dict:
7070 if isinstance (field , ForeignKey ):
7171 if not (s_field := typing .cast (serializers .PrimaryKeyRelatedField | None , ser_fields [field .name ])):
7272 continue
73- e_values = self .get_enum_values (s_field .get_queryset (), field .null )
73+ e_values_qs = field .remote_field .model .objects if s_field .read_only else s_field .get_queryset ()
74+ e_values = self .get_enum_values (e_values_qs , field .null )
7475 result ["schema" ]["properties" ][field .name ]["oneOf" ] = e_values
7576 elif isinstance (field , ManyToManyField ):
7677 if not (s_field := typing .cast (serializers .ManyRelatedField | None , ser_fields [field .name ])):
7778 continue
78- e_values = self .get_enum_values (s_field .child_relation .get_queryset (), False )
79+ e_values_qs = (
80+ field .remote_field .model .objects if s_field .read_only else s_field .child_relation .get_queryset ()
81+ )
82+ e_values = self .get_enum_values (e_values_qs , False )
7983 result ["schema" ]["properties" ][field .name ]["items" ]["oneOf" ] = e_values
8084 result ["schema" ]["properties" ][field .name ]["uniqueItems" ] = True
8185 self .set_ui_schema (result ["ui_schema" ], field .name , {"ui:field" : "m2m_select" })
You can’t perform that action at this time.
0 commit comments