2012-10-20 14 views
6

Django & Tastypie'ye oldukça yeniyim. Sorgudan yalnızca bir nesne döndürmek istiyorum. Hemen hemen her şeyi denedim ve çözümü bulamıyorum.Django Tastypie'de 'obj_get' nin doğru uygulanması nedir?

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']) 

Ben request.user kullanarak tek kaynaktan tek bir kullanıcı nesneyi döndürmek nasıl Şimdi sorun yaşıyorum parçasıdır: Burada aşağıda benim kodudur. Yalnızca ben muhtemelen kwargs kullanıcı normal detay görünümü çağırmak ve diğer URL'ler kaldırıldı olur (my_profile olarak adlandırılır) yeni bir kaynak görünümü yaratacak bir kaynak göstermek istiyorsanız

cevap

4

:

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

Bu mükemmel! Çok teşekkür ederim! :) – noahandthewhale

+0

OMG. Çok teşekkür ederim. Bunu saatlerce bekliyorum. – Max