2012-10-20 10 views
6

私はDjangoにかなり新しいです。& Tastypie。私は、クエリからオブジェクトの1つだけを返したいと思います。私はほとんどすべてを試しましたが、解決策を見つけることができません。ここでは以下の私のコードは次のとおりです。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

あなただけの私はおそらくkwargsからで、ユーザと通常の詳細ビューを呼び出し、他のURLを削除します(my_profileとして名前)新しいリソースビューを作成しますつのリソースを表示する場合:

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

OMG。どうもありがとうございます。私はこれを何時間も探してきました。 – Max

関連する問題