Django tastypie 相关查询集
Django tastypie relative queryset
这是模型:
class Project(models.Model):
creator = models.ForeignKey(User)
name = models.CharField(max_length=64)
def __unicode__ (self):
return self.name
现在我想通过REST/tastypie获取用户项目。
我通过这样的教程制作了资源 class:
class ProjectResource(ModelResource):
class Meta:
queryset = Project.objects.all()
resource_name = 'project'
但是此代码 returning all 每个用户的数据。
我知道如何添加身份验证,但我不明白如何根据登录的用户 ID return 不是所有项目,而是此数据的某些子集。
您可以覆盖 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)
这是模型:
class Project(models.Model):
creator = models.ForeignKey(User)
name = models.CharField(max_length=64)
def __unicode__ (self):
return self.name
现在我想通过REST/tastypie获取用户项目。 我通过这样的教程制作了资源 class:
class ProjectResource(ModelResource):
class Meta:
queryset = Project.objects.all()
resource_name = 'project'
但是此代码 returning all 每个用户的数据。
我知道如何添加身份验证,但我不明白如何根据登录的用户 ID return 不是所有项目,而是此数据的某些子集。
您可以覆盖 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)