模型:
class Project(models.Model):
creator = models.ForeignKey(User)
name = models.CharField(max_length=64)
def __unicode__ (self):
return self.name
现在我想通过REST/tastype获取用户项目。我通过这样的教程制作了资源类:
class ProjectResource(ModelResource):
class Meta:
queryset = Project.objects.all()
resource_name = 'project'
但是这段代码返回所有数据给每个用户。
我知道如何添加身份验证,但我不明白如何返回不是所有的项目,而是这个数据的一些子集,基于登录的用户id。
可以覆盖get_object_list
class ProjectResource(ModelResource):
class Meta:
queryset = Project.objects.all()
resource_name = 'project'
def get_object_list(self, request):
qs = super().get_object_list(request)
return qs.filter(creator=request.user)
def authorized_read_list(self, object_list, bundle):
return object_list.filter(creator=bundle.request.user.id)