2013-10-23 5 views
5

TastyPie का उपयोग करना मेरे पास एक मॉडल संसाधन है जिसमें एक एफके उपयोगकर्ता है। जब मैं एपीआई के लिए एक पोस्ट बनाने मैं इस तरह प्रयोक्ता आईडी शामिल करने के लिए है:उपयोगकर्ताओं के साथ मॉडल संसाधन FK TastyPie API

data : JSON.stringify({ name : 'value a', user : '12' }), 

मेरे उपयोगकर्ताओं को लॉग इन या एक API कुंजी और उपयोगकर्ता नाम और पासवर्ड का उपयोग करके प्रमाणित करने के लिए या तो की है। दोनों मामलों में मुझे पहले से ही पता है कि उपयोगकर्ता कौन है।

1) मैं कैसे उपयोगकर्ता सुनिश्चित करें कि user1user2 के लिए एक संसाधन का निर्माण नहीं करता बना सकते हैं?

2) या यह उपयोगकर्ता आईडी भेजने के लिए counterintuitive है? क्या मुझे किसी भी तरह प्राधिकरण विवरण से उपयोगकर्ता मिलना चाहिए, यदि ऐसा है तो कैसे?

उत्तर

3

प्रश्न # 1 का उत्तर देने के लिए: Tastypie दस्तावेज़ how to create per-user resources का वर्णन करता है। यह मानते हुए कि उपयोगकर्ता पहले से अनुरोध का हिस्सा है:

class MyResource(ModelResource): 
    class Meta: 
     queryset = MyModel.objects.all() 
     resource_name = 'environment' 
     list_allowed_methods = ['get', 'post'] 
     authentication = ApiKeyAuthentication() 
     authorization = Authorization() 

    # Only allow creation of objects belonging to the user 
    def obj_create(self, bundle, **kwargs): 
     return super(EnvironmentResource, self).obj_create(bundle, user=bundle.request.user) 

    # Only allow accessing resources for this user 
    def apply_authorization_limits(self, request, object_list): 
     return object_list.filter(user=request.user) 

प्रश्न # 2 उत्तर देने के लिए, तो आप शायद उपयोगकर्ता सत्र का हिस्सा बनने होना चाहिए।

+0

obj_create() में सुपर() का पहला तर्क 'MyResource' होना चाहिए? – DavidF

संबंधित मुद्दे