Django Rest Framework에서 다른 serializer에 중첩되어있을 때 serializer를 어떻게 필터링합니까?
내 필터는 DRF 뷰셋에 적용되지만 다른 시리얼 라이저 내부에서 시리얼 라이저를 호출하면 중첩 된 시리얼 라이저의 뷰셋이 호출되지 않으므로 중첩 된 결과가 필터링되지 않은 것처럼 보입니다.
원래 뷰셋에 필터를 추가하려고 시도했지만 중첩 된 결과가 별도의 미리 분할 된 쿼리로 호출되기 때문에 중첩 된 결과를 필터링하지 않는 것 같습니다. (중첩 된 직렬 변환기는 역방향 조회입니다.)
중첩 된 serializer 자체에 get_queryset () 재정의를 추가하여 (뷰셋 밖으로 이동) 거기에 필터를 추가 할 수 있습니까? 나도 그것을 시도했지만 운이 없었다.
이것은 내가 시도한 것이지만 호출되지 않는 것 같습니다.
class QuestionnaireSerializer(serializers.ModelSerializer):
edition = EditionSerializer(read_only=True)
company = serializers.StringRelatedField(read_only=True)
class Meta:
model = Questionnaire
def get_queryset(self):
query = super(QuestionnaireSerializer, self).get_queryset(instance)
if not self.request.user.is_staff:
query = query.filter(user=self.request.user, edition__hide=False)
return query
get_queryset
에 클래스ModelViewSet
없는 이유가 호출 점점 아니에요 인 시리얼에,