2017-08-05 18 views
0

は私がジャンゴ:「例外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 
関連する問題