2013-10-10 2 views
0
class TestResource(ModelResource): 
    user = fields.ForeignKey(UserResource, 'user') 
    class Meta: 
     queryset = Test.objects.all() 
     resource_name = 'test' 
     authorization = Authorization() 
     authentication = BasicAuthentication() 

Test 실제로 로그인 한 사용자가 생성 한 개체를 얻는 방법은 무엇입니까?실제로 기록 된 사용자가 만든`Test` 객체를 얻는 방법은 무엇입니까?

모든 제품 :

에 http : // 127.0.0.1:8000/api/test/?format=json

답변

0

는 현재 로그인 한 사용자에 따라 자원을 반환하려면 가정 , 자원에서 apply_authorization_limits을 대체하여 리턴 된 자원을 제한 할 수 있습니다. POST에 대해 현재 사용자를 설정하는 것은 obj_create을 무시하여 쉽게 할 수 있습니다.

참조 : 예 : http://django-tastypie.readthedocs.org/en/latest/cookbook.html#creating-per-user-resources

class TestResource(ModelResource): 
    user = fields.ForeignKey(UserResource, 'user') 

    class Meta: 
     queryset = Test.objects.all() 
     resource_name = 'test' 
     authorization = Authorization() 
     authentication = BasicAuthentication() 

    def obj_create(self, bundle, **kwargs): 
     return super(TestResource, self).obj_create(bundle, 
      user=bundle.request.user) 

    def apply_authorization_limits(self, request, object_list): 
     return object_list.filter(user=request.user) 
관련 문제