6

私は Django & Tastypie を初めて使用します。クエリからオブジェクトを 1 つだけ返したいと思います。私はほとんどすべてを試しましたが、解決策が見つからないようです。以下は私のコードです:

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

1 に答える 1

4

1 つのリソースのみを表示する場合は、新しいリソース ビュー (my_profile という名前) を作成し、kwargs でユーザーを指定して通常の詳細ビューを呼び出し、他の 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)
于 2012-10-24T12:16:12.447 に答える