2012-10-20 14 views
6

Jestem całkiem nowy dla Django & Tastypie. Chciałbym zwrócić tylko jeden z obiektów z zapytania. Wypróbowałem prawie wszystko i nie mogę znaleźć rozwiązania. Oto mój kod poniżej:Jaka jest właściwa implementacja "obj_get" w Django Tastypie?

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

Teraz część Mam problemy ze jest jak mogę wrócić pojedynczy obiekt użytkownika z jednego zasobu używając request.user.

Odpowiedz

4

Jeśli chcesz tylko pokazać jednego zasobu I prawdopodobnie utworzyć nowy widok zasobów (nazwany jako my_profile), który nazwałbym normalny widok szczegółowy z użytkownikiem w kwargs i usuwane innych adresów URL:

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

To jest doskonały! Dziękuję bardzo! :) – noahandthewhale

+0

OMG. Dziękuję bardzo. Szukałem tego od wielu godzin. – Max

Powiązane problemy