我試圖強制驗證以訪問我的API,但我的ViewSet
的permission_classes = permissions.IsAuthenticated,)
屬性似乎不起作用。因爲我稍後再嘗試訪問用戶的個人資料上時get_queryset()
,我得到這樣的錯誤:無法在Django Rest Framework中強制執行驗證要求
TypeError: 'AnonymousUser' object is not iterable"
我也驗證我rest_framework設置中設置:
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',),
而且我也加入到這樣做對用戶配置文件中的其他業務邏輯檢查之前,我分派方法:
def dispatch(self, request, *args, **kwargs):
if not request.user.is_authenticated:
return Response(status=status.HTTP_401_UNAUTHORIZED)
這不工作之一:
File "/lib/python3.5/site-packages/rest_framework/response.py", line 57, in rendered_content assert renderer, ".accepted_renderer not set on Response" AssertionError: .accepted_renderer not set on Response
爲什麼這些驗證控件都不起作用?
編輯:這裏有一個get_queryset()
的簡化版本:
kwargs = {}
for k,v in self.request.query_params.items():
if not validate_that_key_is_an_actual_model_field(k):
return Response(status=status.HTTP_400_BAD_REQUEST)
kwargs[k] = v
return Product.objects.filter(fk_client=self.client)\
.filter(**kwargs)\
.order_by('uuid')\
.select_related('fk_user')
你能展示你的觀點嗎? – zaidfazil
它有幾百行;你需要哪部分? – Escher
至少你的'get_queryset()'方法,那麼? – zaidfazil