2016-04-30 19 views
1

我需要在庫API的細節視圖顯示多個圖像,但我得到一個錯誤,說明MultipleObjectsReturned在/ API /出租/畫廊/ 1/

MultipleObjectsReturned在/ API /出租/畫廊/ 1/

get()返回多個圖庫 - 它返回2!

views.py

class GalleryListAPIView(ListAPIView): 
    # queryset = Rental.objects.all() 
    serializer_class = GalleryListSerializer 
    pagination_class = RentalPageNumberPagination 

    def get_queryset(self, *args, **kwargs): 
     queryset_list = Gallery.objects.all() 
     return queryset_list 

class GalleryDetailAPIView(RetrieveAPIView): 
    queryset = Gallery.objects.all() 
    serializer_class = GalleryDetailSerializer 
    lookup_field = 'rental_id' 

serializers.py

class GalleryListSerializer(ModelSerializer): 
    class Meta: 
     model = Gallery 

class GalleryDetailSerializer(ModelSerializer): 
    # image = SerializerMethodField(many=True) 
    class Meta: 
     model = Gallery 
     fields = ('id', 'image', 'rental_id') 
+2

正如錯誤所述,您有兩個Gallery對象,其中rental_id = 1。 –

+0

您能否也添加模型? – trinchet

回答

1

看一看在documentation

lookup_field - 即壽模型場ld用於執行單個模型實例的對象查找。默認爲'pk'

既然你已經使用rental_id和您所使用的網址/api/rentals/gallery/1/這裏1rental_id而不是畫廊的pk。而且,可能有兩個與rental_id=1相關的圖庫對象,這就是爲什麼你在結果中獲得這些對象的原因。