【发布时间】:2011-10-18 23:52:18
【问题描述】:
我最近开始使用 sweetpie 为潜在的智能手机应用程序打开我的 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/resources.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'],
}
有什么想法吗?
【问题讨论】: