gpt4 book ai didi

python - tastypie api 不在 json 结果中显示 ForeignKey

转载 作者:太空狗 更新时间:2023-10-30 00:04:06 25 4
gpt4 key购买 nike

我最近开始使用 tastypie 为一个潜在的智能手机应用打开我的 API。

我正在使用 python-2.7 和 Django-1.1.2

有两件事让我感到困惑

1:在 EntryResource 类中调用 ForeignKey 时,他们只是调用资源和 resource_name,当我这样做时,我得到以下信息追溯。

691. assert isinstance(to, basestring), "%s(%r) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string %r" % (self.__class__.__name__, to, RECURSIVE_RELATIONSHIP_CONSTANT)

Exception Type: AssertionError at /api/v1/activity-stream-item-subject/
Exception Value: ForeignKey(<class 'api.resources.UserResource'>) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string 'self'

2:如果我将 EntryResource 更改为 user = fields.ForeignKey(UserResource, 'user'),那么它在没有回溯的情况下运行良好,但是我看不到JSON响应中的相关信息。

api/资源.py

class UserResource(ModelResource):
class Meta:
queryset = User.objects.all()
resource_name = 'user'
excludes = ['email', 'password', 'is_active', 'is_staff', 'is_superuser']
filtering = {
'username': ALL,
}

class EntryResource(ModelResource):
user = fields.ForeignKey(UserResource, 'user')

class Meta:
queryset = Entry.objects.all()
resource_name = 'entry'
authorization = Authorization()
filtering = {
'user': ALL_WITH_RELATIONS,
'pub_date': ['exact', 'lt', 'lte', 'gte', 'gt'],
}

有什么想法吗?

最佳答案

我不确定我是否理解你的第一个问题,但关于第二个问题,你需要指定你想要使用的完整资源:

user = fields.ForeignKey(UserResource, 'user',full=True)

否则您将获得资源 URI 而不是内容。 ( Ref )

也仅供引用,请记住要求说明:

Django 1.2+ (May work on Django 1.1)

关于python - tastypie api 不在 json 结果中显示 ForeignKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6925006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com