의 많은의 나는이 모델이 있다고 가정 해 봅시다하게) :장고 - 나머지 프레임 워크 시리얼 쿼리
class PlaceSerializer(serializers.ModelSerializer):
owner = UserModelSerializer() # Gets only specific fields for a place owner
class Meta:
model = Place
시리얼 라이저가 반환하는 쿼리를 얻을 때 문제가, 내가 (쿼리가 각 owner
외래 키 관계를 위해 만들어진되고 있음) connection.queries
에서 볼 수의 50 곳 ... 말을 할 수있다, 많은 것을 합친 f 쿼리. 이것은 물론 성능에 큰 영향을줍니다.
또한 언급해야 할 점은 serializer를 호출하는 뷰의 경우 get_queryset()
은 사용자 지정 쿼리를 사용하여 중심점에서 특정 거리에있는 Place
만 반환한다는 것입니다. 나는 Django의 extra()
메소드를 사용했다.
나는 위에서 언급 한 쿼리와 함께 select_related
과 prefetch_related
을 사용해 보았지만, 나중에 시리얼 라이저에서 쿼리를 작성하는 데 어떤 차이가없는 것으로 보입니다.
무엇이 누락 되었습니까?
답장을 보내 주셔서 감사합니다. 쿼리가 요청에서 값을 가져와야하는 경우 'queryset'속성을 사용할 수 있습니까? 지금은'get_queryset()'을 사용하고 있습니다. – OrPo
select_related 내부에서 'get_queryset'을 사용하면 작동합니다. –
@TomChristie 안녕하세요, 도와주세요. http://stackoverflow.com/questions/26744664/django-tweak-the-rest-framework-serializer-to-getting-a-different-json-structure – Abhishek