【发布时间】:2016-06-19 13:08:56
【问题描述】:
我的 Django Rest Framework 有问题,我正在学习为我的 API 设置 权限和关联,因此我无法运行服务器,所以它说 AssertionError: Field(read_only=True) 应该是 ReadOnlyField
我的模型.py
class Task(models.Model):
owner=models.ForeignKey('auth.User',related_name='tasks')
completed=models.BooleanField(default=False)
title=models.CharField(max_length=100)
description=models.TextField()
serializer.py
class TaskSerializer(serializers.ModelSerializer):
owner=serializers.Field('owner.username')
class Meta:
model = Task
fields=('title','description','completed','owner ')
permission.py
class IsOwnerOrReadOnly(BasePermission):
def has_object_permission(self, request, view, obj):
if request.method is SAFE_METHODS:
return True
return obj.owner==request.user
views.py
class TasksMixins(object):
queryset = Task.objects.all()
serializer_class=TaskSerializer
permission_classes=(IsOwnerOrReadOnly,)
def pre_save(self,obj):
obj.owner=self.request.user
class TaskList(ListCreateAPIView):
pass
class TaskDetail(RetrieveUpdateDestroyAPIView):
pass
我不确定我搞砸了什么。非常感谢任何帮助
【问题讨论】:
标签: python django permissions django-rest-framework