Skip to content

Commit 3e13d4d

Browse files
committed
fix: read_only 필드에서 쿼리셋이 None인 문제 수정
1 parent 072f280 commit 3e13d4d

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

app/core/viewset/json_schema_viewset.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff 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"})

0 commit comments

Comments
 (0)