小编Jon*_*ens的帖子

Django REST Framework: 'BasePermissionMetaclass' object is not iterable

Python/Django n00b moving over from javascript.

我希望使用Django REST Framework尝试添加API终结点,我希望该终结点最终将能够使用PATCH请求的正文来更新User,但现在我只希望它不引发500错误。

我已将其添加到urlpatterns中:

url(r'update/$', views.UpdateView.as_view(), name="update_user"),
Run Code Online (Sandbox Code Playgroud)

那应该带来这种观点:

from django.contrib.auth.models import User
from rest_framework.generics import UpdateAPIView
from .serializers import UserSerializer

class UpdateView(UpdateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
Run Code Online (Sandbox Code Playgroud)

UserSerializer看起来像这样:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('username', 'pk', 'status')
Run Code Online (Sandbox Code Playgroud)

似乎每次我访问路线时都会得到此提示:

TypeError at /api/update/
'BasePermissionMetaclass' object is not iterable
Run Code Online (Sandbox Code Playgroud)

我不知道我在做什么-以前有人看过吗?

更新:完整回溯:

Internal Server Error: /api/update/
Traceback (most recent call last):
  File "path/to/myapp/env/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "path/to/myapp/env/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, …
Run Code Online (Sandbox Code Playgroud)

python django django-views django-rest-framework

4
推荐指数
3
解决办法
5100
查看次数