2012-10-20 9 views
6

मैं Django & Tastypie के लिए काफी नया हूँ। मैं क्वेरी से केवल वस्तुओं में से एक को वापस करना चाहता हूं। मैंने लगभग हर चीज की कोशिश की है और समाधान ढूंढने के लिए प्रतीत नहीं होता है।Django Tastypie में 'obj_get' का उचित कार्यान्वयन क्या है?

class ProfileResource(ModelResource): 
    person = fields.ForeignKey(UserResource, 'user', full=True) 

class Meta: 
    queryset = Person.objects.all() 
    resource_name = 'profile' 
    authentication = BasicAuthentication() 
    authorization = DjangoAuthorization() 
    serializer = Serializer(formats=['json']) 

अब हिस्सा मैं कुछ समस्या आ रही है कि कैसे मैं request.user का उपयोग कर एक भी संसाधन से एक एकल उपयोगकर्ता वस्तु लौट सकते हैं: यहाँ नीचे मेरी कोड है।

उत्तर

4

आप केवल मैं शायद (my_profile के रूप में नामित) कि kwargs में उपयोगकर्ता के साथ सामान्य विवरण दृश्य फोन और अन्य यूआरएल को हटा दिया जाएगा नए संसाधन दृश्य बनाते हैं एक संसाधन दिखाना चाहते हैं:

from django.conf.urls import url 
from tastypie.utils import trailing_slash 
class ProfileResource(ModelResource): 
    ... 
    def base_urls(self): 
     return [ 
      url(r"^(?P<resource_name>%s)%s$" % (self._meta.resource_name, trailing_slash()), self.wrap_view('dispatch_my_profile'), name="api_dispatch_my_profile") 
     ] 

    def dispatch_my_profile(self, request, **kwargs): 
     kwargs['user'] = request.user 
     return super(ProfileResource, self).dispatch_detail(request, **kwargs) 
+0

यह एकदम सही है! आपको बहुत - बहुत धन्यवाद! :) – noahandthewhale

+0

ओएमजी। बहुत बहुत धन्यवाद। मैं इसे घंटों के लिए देख रहा हूं। – Max

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