2017-08-05 57 views
0

我越來越Django的:「RuntimeError:最大遞歸深度超過了」關於get_queryset功能

RuntimeError: maximum recursion depth exceeded on the below code

class BookingViewSet(viewsets.ModelViewSet): 
queryset = Booking.objects.all() 
serializer_class = BookingSerializer 

def get_queryset(self): 
    queryset = self.get_queryset().filter(owner=self.request.user) 
    return queryset 

我發現,問題出在get_queryset功能,但我不能找到什麼是它的原因。

+0

我的錯。這是問題。謝謝 –

回答

2

你打電話get_queryset()裏面get_queryset(),很清楚,這將是一個無限的遞歸。

你或許應該參考只是self.queryset代替:

def get_queryset(self): 
    queryset = self.queryset.filter(owner=self.request.user) 
    return queryset 

雖然你還不如干脆離開了類級別的定義,只是做它的方法:

def get_queryset(self): 
    queryset = Booking.objects.filter(owner=self.request.user) 
    return queryset 
+0

謝謝。這是問題 –

0

可能是你想寫:

def get_queryset(self): 
    queryset = self.queryset.filter(owner=self.request.user) 
    #    ^^^^^^^^^^  
    return queryset 
相關問題