2016-11-08 11 views
0

はモデルです:ジャンゴtastypie相対的なクエリセット

class Project(models.Model): 
    creator = models.ForeignKey(User) 
    name = models.CharField(max_length=64) 

    def __unicode__ (self): 
     return self.name 

今、私はREST/tastypieにより、ユーザー・プロジェクトを取得したいです。 私はこのようなチュートリアルでリソースクラスを作っ:

class ProjectResource(ModelResource): 
    class Meta: 
     queryset = Project.objects.all() 
     resource_name = 'project' 

しかし、このコードは、すべてのユーザーのために すべてデータを返します。

私は認証を追加する方法を知っていますが、すべてのプロジェクトを返す方法を理解することはできませんが、ログされたユーザーIDに基づいてこのデータの一部をサブセット化します。

答えて

1

あなたはあなたに感謝、ああ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) 
+0

を上書きすることができます! 将来フォールス時間を節約するために、authorized_read_list関数もあります... – KaronatoR

+0

@KaronatoRさらに適切な答えがある場合は、私の編集だけであなたの改善を受け入れます –

関連する問題